托管类型与非托管类型

时间:2019-02-20 15:49:39

标签: c# sizeof unmanaged managed

reading an article是关于如何在C#中使用sizeof运算符的。

他们说:“用于获取非托管类型的字节大小。”

我知道托管代码和非托管代码之间的区别。但是我的理解是,我用C#编写的所有代码(包括所有预定义和用户定义的类型)都由CLR管理。那么,“非托管类型”是什么意思?

1 个答案:

答案 0 :(得分:3)

术语“非托管类型”有点误导:不是在非托管代码中定义的类型。这是一种不包含由垃圾收集器管理的引用的类型。

在C#7.3中甚至有一个generic constraint unmanaged

  

[...]不得为引用类型,并且在任何嵌套级别均不得包含任何引用类型成员。


如果您有使用WinAPI的经验:最初建议的非托管类型的名称为blittable