我reading an article是关于如何在C#中使用sizeof
运算符的。
他们说:“用于获取非托管类型的字节大小。”
我知道托管代码和非托管代码之间的区别。但是我的理解是,我用C#编写的所有代码(包括所有预定义和用户定义的类型)都由CLR管理。那么,“非托管类型”是什么意思?
答案 0 :(得分:3)
术语“非托管类型”有点误导:不是在非托管代码中定义的类型。这是一种不包含由垃圾收集器管理的引用的类型。
在C#7.3中甚至有一个generic constraint unmanaged
:
[...]不得为引用类型,并且在任何嵌套级别均不得包含任何引用类型成员。
如果您有使用WinAPI的经验:最初建议的非托管类型的名称为blittable
。