我正在将用C ++编写的库转换为C#,并且关键字“联合”存在一次。在结构中。
将其转换为C#的正确方法是什么?它是做什么的?看起来像这样;
struct Foo { float bar; union { int killroy; float fubar; } as; }
您可以为此使用显式字段布局:
[StructLayout(LayoutKind.Explicit)] public struct SampleUnion { [FieldOffset(0)] public float bar; [FieldOffset(4)] public int killroy; [FieldOffset(4)] public float fubar; }
未经测试。这个想法是两个变量在您的结构中具有相同的位置。当然,您只能使用其中之一。
有关结构教程的联合的更多信息