C#中能不能直接操作内存

高级语言C#中引以为傲的GC(垃圾回收器)负责释放垃圾对象占用的内存。

微软允许操作内存,但不支持这样做,扰乱GC。

使用C#中的指针即可,使用unsafe告诉编译器此段为不安全代码,即可使用*或者&来操作内存。

还可以使用DllImport导入C/C++写的DLL接口,C#中可以使用IntPtr对应指针来使用接口进而操作内存

PS:

托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象;

非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等;