C#中的C ++联合

我正在将用C ++编写的库转换为C#,并且关键字“联合”存在一次。在结构中。


将其转换为C#的正确方法是什么?它是做什么的?看起来像这样;


struct Foo {

    float bar;


    union {

        int killroy;

        float fubar;

    } as;

}


四季花海
浏览 571回答 3
3回答

函数式编程

您可以为此使用显式字段布局:[StructLayout(LayoutKind.Explicit)] public struct SampleUnion{    [FieldOffset(0)] public float bar;    [FieldOffset(4)] public int killroy;    [FieldOffset(4)] public float fubar;}未经测试。这个想法是两个变量在您的结构中具有相同的位置。当然,您只能使用其中之一。
打开App,查看更多内容
随时随地看视频慕课网APP