メモ:C#で共用体のようなもの

using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Explicit)]
public struct Point
{
    [FieldOffset(0)]
    public byte x;

    [FieldOffset(1)]
    public byte y;

    [FieldOffset(0)]
    public UInt16 raw;
}

class Program
{
    public static void Main(string[] args)
    {
        Point p = new Point();
        p.x = 0x12;
        p.y = 0x34;
        Console.WriteLine($"x={p.x:X}, y={p.y:X}, raw={p.raw:X}");
    }
}

実行結果

x=12, y=34, raw=3412

参考