我已经看过 Mario Hewardt 的一个会话,其中提到一个包含整数属性的类需要 16 个字节的空间。我想知道一个简单的跟随类的大小如何导致16?
[StructLayout(LayoutKind.Sequential)]
public class MyClass
{
public int Age;
}
问题是整数占用 4 个字节的空间(对吗?)那么这 12 个其他字节到底是从哪里来的呢?我还使用 Marshal.SizeOf 来获取导致 4 的类大小:
int n = Marshal.SizeOf(typeof(MyClass));
//n == 4
我读过这篇文章,似乎上面的类包含 8 个字节的内部数据(这些数据到底是什么?)、4 个字节的 int 值和 4 个字节的未使用空间。那么如果它需要 16 个字节,为什么 Marshal.SizeOf 返回 4?如果需要 4 个字节,那 8 个字节到哪里去了?我真的很困惑。