我知道在 C++/CLI 中定义托管类时不能使用非托管类型:
public struct Unmanaged
{
int x;
int y;
};
public ref class Managed
{
int one;
Unmanaged two; //error C4368
};
我不明白为什么。Unmanaged
只是本机类型的集合 - 它的大小是已知的,当然它(我的意思是定义它的内存块)将与Managed
“托管堆”内的“内存块”一起移动,并且存储在元数据中的任何偏移量都将保持有效,不是吗?就像声明了整数或浮点数一样?
为什么我们不能混合类型?