保持值类型作为引用类型成员的有效性

时间:2015-06-22 04:08:30

标签: c# .net

在我的应用程序中,我创建了一些课程 在某些情况下,我需要知道类的大小(字节数) 所以我想到了一种方法,我知道我可以调用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;
    }
}

0 个答案:

没有答案