托管与非托管类型

TGY*_*TGY 11 c# unmanaged managed sizeof

我正在阅读一篇关于如何sizeof在 C# 中使用运算符的文章

他们说:“用于获取非托管类型的大小(以字节为单位)。”

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

Vla*_*lad 14

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

在 C# 7.3 中甚至还有一个通用约束unmanaged

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


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