可能重复:
How to check the number of bytes consumed by my Structure?获取结构的大小在C#
我在
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct test
{
public int a;
public uint16 b;
}
的包装方式的结构如何获得大小作为编译器的结构声明sizeof只能在不安全的上下文中使用?
谢谢。
可能重复:
How to check the number of bytes consumed by my Structure?获取结构的大小在C#
我在
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct test
{
public int a;
public uint16 b;
}
的包装方式的结构如何获得大小作为编译器的结构声明sizeof只能在不安全的上下文中使用?
谢谢。
您将sizeof运算符置于不安全的上下文中,就像编译器建议的那样?
像这样的东西我想:
int size;
unsafe
{
size=sizeof(Test);
}
但我不知道,如果你真的想这样做。我倾向于使用普通的序列化器而不是具有特定布局的结构。国际海事组织你应该使用这种结构只用于本地互操作,而不是简单的序列化。
然后看看SizeOf
函数编组的文档也可能会混淆大小(不是在这个例子中)。
SizeOf
方法会诀窍。
int size = System.Runtime.InteropServices.Marshal.SizeOf(typeof(Point));
你需要什么? – 2011-02-10 11:23:03
我需要通过网络发送它。我得到的API需要我指定结构的字节包括头+数据等 – Nick 2011-02-10 11:24:12
看看http://stackoverflow.com/questions/2418749/c-why-sizeof-is-unsafe-and-how在一个安全的方式结构的大小 – Ray 2011-02-10 11:26:30