# sharpunsafe **Repository Path**: lightsever/sharpunsafe ## Basic Information - **Project Name**: sharpunsafe - **Description**: c# 非托管用法演示 - **Primary Language**: C# - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-05-06 - **Last Updated**: 2022-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sharpunsafe C# 关于unsafe的奇技淫巧 c# 托管、非托管 什么意思,指得是 由GC管理内存,就叫托管。默认都是这么处理的。 他的反面就是非托管,不由GC管理的内存。 c#里面非托管的内容主要有两块 ## 1.需要Dispose的资源 比如FileStream,这东西一定要及时释放,using语句块 专门为释放dispose 资源设计 ``` c# using(var fs = System.IO.File.Openread("abc.txt")) { //... }//退出using子句时清理,using子句考虑了诸多情况,包括异常跳出。 ``` ## 2.指针 c#对指针不推荐使用,需要开/unsafe选项才可以使用 而且所有用到指针的地方 需要使用 unsafe 标记 但是指针香呀 [为什么我们要Fixed,如何安全的使用unsafe](./fixedandunsafe.md) [一切的开端 BLITTABLE](./blittable.md) [像C程序员一样处理序列化](./io.md) [没有GC的世界](./nogc.md)