有没有一种方法可以在C#中实现C ++样式联盟?我还将需要将该“联合”序列化到磁盘。
最佳答案
您可以使用StructLayoutAttribute
和FieldOffsetAttribute
模拟它:
[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/