C/C++にあるunionをC#で使用する方法は、ネットにいくつか解説しているサイトがあります。しかし、構造体がunionになったものは例があまりないため紹介したいと思います。 基本的に、StructLayout = "LayoutKind.Explicit"(明示的にレイアウトを指定する)とFieldOffsetの組み合わせで実現できます。 [StructLayout(LayoutKind.Explicit)] public struct Parent { [FieldOffset(0)] public int A; [FieldOffset(4)] public UnionStructure_1 B; // BとCで構造体が重なっている [FieldOffset(4)] public UnionStructure_2 C; } [StructLayout(LayoutKind.Expl
![C#で構造体のunion(共用体)を扱う - PG日誌](https://cdn-ak-scissors.b.st-hatena.com/image/square/e1a7a5cbe13d8d69ab62a2478678cfdf44b2a756/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2FT%2FTakachan%2F20170920%2F20170920004006.png)