有没有一种方法可以在C#中实现C ++样式联盟?我还将需要将该“联合”序列化到磁盘。

最佳答案

您可以使用StructLayoutAttributeFieldOffsetAttribute模拟它:

[StructLayout(LayoutKind.Explicit)]
struct ExampleStruct
{
    [FieldOffset(0)]
    public int a;

    [FieldOffset(0)]
    public int b;

    [FieldOffset(0)]
    public int c;

    [FieldOffset(0)]
    public int d;
}


C#没有对它们的直接支持。但是,这使您更加接近。请参见以下MSDN示例:http://msdn.microsoft.com/en-us/library/acxa5b99(v=vs.80).aspx

至于如何序列化它..我自己还没有尝试过(没有必要..)。

关于c# - 如何在C#中实现C++样式联盟?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14887079/

10-09 13:43