我正在阅读有关如何在C#中使用sizeof
操作员的文章。
他们说:"用于获得非托管类型的字节的大小。"
我知道托管代码和未托管代码之间的区别。但是我的理解是,我在C#中编写的所有代码(包括所有预定义和用户定义的类型)均由CLR管理。那么它们是什么意思是"非托管类型"?
术语"非托管类型"有点误导:不是在非托管代码中定义的类型。这是一种不包含垃圾收集器管理的引用的类型。
在C#7.3中,甚至还有一个通用约束unmanaged
:
[...]不得是参考类型,并且不得在嵌套的任何级别上包含任何参考类型成员。
如果您有Winapi的经验:最初提出的非托管类型名称是blittable
。