C# 语言中的其他成分
admin
2024-04-23 07:27:53
0

一 编译预处理

1 标识符声明

① #define定义一个标识符;
② #undef 取消定 一个标识符;

2 条件处理

#if #elif #else #endif

3 信息报告

#error和#warning

4 行号标记

#line 行号“文件名”

二 unsafe及指针

1 unsafe

用于修饰类、方法等

2 fixed及指针

fixed(类型*指针名=表达式)语句;

3 sizeof运算符

sizeof(简单或结构类型名)

4 stackalloc

在栈上分配的内存,而不是在堆上,因此不会担心内存被垃圾回收器自动回收;

5 指针示例

class FileStream:Stream
{int handle;[dllimport("kernel32",SetLastError=true)]static extern unsafe bool ReadFile(int hFile,void*lpBuffer,int nBytesToRead,int* nBytesRead,Overlapped*lpOverlapped);public unsafe int Read(byte[] buffer,int index,int count){int n=0;fixed(byte*p=buffer){ReadFile(handle,p+index,count,&n,null);}return n;}
}

指针

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 指针
{class Test{static unsafe void Copy(byte[] src, byte[] dst, int count){int srcLen = src.Length;int desLen = dst.Length;if(srcLenthrow new ArgumentException();}fixed(byte* pSrc=src,pDst=dst){byte* ps = pSrc;byte* pd = pDst;for(int n=0;n*pd++ = *ps++;}}}static void Main(){byte[] a = new byte[100];byte[] b= new byte[100];for (int i = 0; i < 100; ++i)a[i] = (byte)i;Copy(a, b, 100);Console.WriteLine("The first 10 elements are:");for (int i = 0; i < 10; ++i)Console.Write(b[i] + "{0}", i < 9 ? " " : " ");Console.WriteLine("\n");Console.ReadKey();}}
}

stackalloc分配内存空间

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 分配内存空间
{class Test{unsafe static string IntToString(int value){char* buffer = stackalloc char[16];char* p = buffer + 16;int n = value >= 0 ? value : -value;do{*--p = (char)(n % 10 + '0');n /= 10;} while (n != 0);if (value < 0) *--p = '-';return new string(p, 0, (int)(buffer + 16 - p));}static void Main(){Console.WriteLine(IntToString(12345));Console.WriteLine(IntToString(-999));Console.ReadKey();}}
}

相关内容

热门资讯

原创 黄... 2026年2月19日,国际伦敦现货黄金报价为每盎司4903美元,国内黄金实时价格为每克1084元,白...
纠治“抢票神器”“哄抬价格”等... 来源:央视 记者今天从市场监管总局了解到,春节假期,节日消费、旅游服务等市场火热。为维护春节期间市场...
解锁区块链世界:公有链翻译的知... 在信息技术飞速发展的今天,公有链作为区块链技术的重要分支,正逐渐渗透到金融、供应链、数字身份等多个领...
河南蒙古族自治县必须品尝的小吃... 在广袤的中国大地上,河南蒙古族自治县宛如一颗璀璨的明珠,散发着独特的民族文化魅力。而当地的小吃,更是...
原创 与... 作品声明:内容仅供参考,如有不适及时就医 双相情感障碍是一种长期的精神疾病,其特征是情绪波动剧烈,...
洛阳市孟津区筑牢基层网底 加强... 近日,记者从洛阳市孟津区卫生健康委获悉,孟津区以乡村一体化管理为主线,深化“乡聘村用”改革,强化大学...
原创 黄... 2月18日,国内黄金现货价1104元/克,白银18.9元/克,品牌零售价显著高于水贝批发价,周大福等...
“全款买房”和“贷款30年”,... 大家好,在进入正文之前,给大家做一个推荐。 我的一个设计师好友夏夏,从LXD离职后,经历过设计创业的...
港股马年首秀:智谱暴涨43%市... 大年初四(2月20日),当A股仍在享受春节假期时,港股已率先敲响马年交易的锣声。这匹"金融骏马"的首...
突发! 某大型国有汽车集团原董... 2026年2月,临近60岁法定退休年龄的方红卫终未等来功成身退。 从车间技术员到陕汽控股董事长,方红...
【首都除夕 护卫健康】最暖“年... 春节万家团圆、灯火可亲,而对于北京朝阳医院急诊医学中心的医护人员来说,这个节日往往意味着更重的责任与...
门窗紧闭容易“攒”出一身病,医... 过年了,走亲访友、家人团聚,屋里热热闹闹,门窗也关得严严实实。可待久了,不少人开始觉得头昏脑涨、胸闷...
全年减少6768亿元,3个现象... 开篇先给大家讲个故事,我一个发小在某个二线城市买了一套房,买房那一年正好是2019年,当时这个城市房...
德林控股宣布:德林证券已向合资... 深圳商报·读创客户端记者 李薇 2月20日,德林控股(01709)发布公告,宣布德林证券近日已向合资...
餐饮茶饮集体涨价:不是想涨,是... 最近几年,只要说起餐饮茶饮市场,几乎大家都在说的就是低价策略,这些年在行业内卷的情况下,各家企业都在...
深圳春节“悦己经济”持续升温 深圳商报·读创客户端首席记者 董思 “爱你老己”成为年轻人自我关怀的热梗,以情绪价值为核心的“悦己消...
港股马年开市:AI、机器人概念... 澎湃新闻记者 孙铭蔚 2026年马年首个交易日,港股三大股指低开低走,国产AI大模型、机器人等概念股...
银行理财“收益打榜”?监管出手... 备受关注的银行理财“收益打榜”现象,真的像一些媒体和研报预测的那样,引来监管出手纠偏了。 证券时报·...
原创 春... 2026年春节买金现场直击:国际金价在5000美元高位震荡,国内品牌金饰每克报价1529元到1562...
黄力晨:地缘紧张局势加剧 避险... 昨日周四我们认为,美伊谈判仅取得有限进展,俄乌会谈也无果而终,这导致市场避险情绪再度升温,避险买盘支...