1.marshal类,提供了一些方法集合,如分配非托管内存,拷贝非托管内存,转换托管和非托管类型,以及一些和非托管代码交互的杂类方法
//分配非托管内存
IntPtr hglobal = Marshal.AllocHGobal(100);
e.g : ushort* disBuf = (ushort*)Marshal.AllocHGobal(255);
//释放内存
Marshal.FreeHGlobal(hglobal);
2.fixed语句可防止垃圾回收器重新定位到可移动的变量,fixed语句仅允许存在于不安全的上下web中,还可以使用fixed关键字创建固定大小的缓冲区
3.字符数组和字符串之间的转化
//string->char[]
char[] c = source_str.ToCharArray();
//char[]->string
string des_str = string.join("",charArray);
4.字节数组和字符串之间的转化
//byte[]->string
string Dex_str = Encoding.Default.GetString(b);
//string->byte[]
Byte[] byteArray = Encoding.Default.GetBytes(source_str);