托管与非托管类型
Managed vs. unmanaged types
我 reading an article 关于如何在 C# 中使用 sizeof
运算符。
他们说:"Used to obtain the size in bytes for an unmanaged type."
我知道托管代码和非托管代码之间的区别。但我的理解是,我用 C# 编写的所有代码(包括所有预定义和用户定义的类型)都由 CLR 管理。那么 "unmanaged types" 是什么意思?
术语 "unmanaged type" 有点误导:不是在非托管代码中定义的类型。它是一种不包含由垃圾收集器管理的引用的类型。
在 C# 7.3 中甚至还有 generic constraint unmanaged
:
[...] must not be a reference type and must not contain any reference type members at any level of nesting.
如果您有使用 WinAPI 的经验:最初提议的非托管类型名称是 blittable
。
我 reading an article 关于如何在 C# 中使用 sizeof
运算符。
他们说:"Used to obtain the size in bytes for an unmanaged type."
我知道托管代码和非托管代码之间的区别。但我的理解是,我用 C# 编写的所有代码(包括所有预定义和用户定义的类型)都由 CLR 管理。那么 "unmanaged types" 是什么意思?
术语 "unmanaged type" 有点误导:不是在非托管代码中定义的类型。它是一种不包含由垃圾收集器管理的引用的类型。
在 C# 7.3 中甚至还有 generic constraint unmanaged
:
[...] must not be a reference type and must not contain any reference type members at any level of nesting.
如果您有使用 WinAPI 的经验:最初提议的非托管类型名称是 blittable
。