在C#中获取struct的大小

可能重复:
如何检查我的Structure消耗的字节数?

我有一个包装forms的结构

[StructLayout(LayoutKind.Sequential, Pack = 1)] public struct test { public int a; public uint16 b; } 

我如何获得结构的大小,因为编译器声明sizeof只能在不安全的上下文中使用?

谢谢。

SizeOf方法可以解决这个问题。

 int size = System.Runtime.InteropServices.Marshal.SizeOf(typeof(Point)); 

您将sizeof运算符置于不安全的上下文中,就像编译器建议的那样?

我猜是这样的:

 int size; unsafe { size=sizeof(Test); } 

但我不确定你是否真的想这样做。 我倾向于使用普通的序列化器而不是具有特定布局的结构。 IMO你应该只为原生互操作使用这样的结构,而不是简单的序列化。

并且查看SizeOf函数编组的文档也会SizeOf大小(尽管不是在这个例子中)。