在我的应用程序中,我创建了一些课程 在某些情况下,我需要知道类的大小(字节数) 所以我想到了一种方法,我知道我可以调用binaryformatter序列化,看看什么是序列化结果(byte [])并取这个结果的长度。
但是二进制格式化序列化需要2毫秒,这对我来说就像是不好的做法。
我的另一种方法是持有阴影结构并使用Marshal.sizeof(...)
这需要0.6754毫秒
但我不确定我在课程中保持结构的有效性。
代码:
public class DommyElement
{
public int Val1 { get; set; }
public int Val2 { get; set; }
public int Val3 { get; set; }
public int Val4 { get; set; }
public int ElementSize()
{
return Marshal.SizeOf(typeof(ShadowElement));
}
private struct ShadowElement
{
int Val1;
int Val2;
int Val3;
int Val4;
}
}