More than 1 year has passed since last update.

C / C++ には「共用体」(union) というのがありますが、C# にはありません。
ですが、属性 StructLayout(LayoutKind.Explicit) と FieldOffset を使って実現は可能です。
MSDN にも解説があります。


using System;
using System.Runtime.InteropServices;

// C# 共用体のテスト
public class UnionTest
  public static void Main()
     var bytes = new TBytes();
     bytes.Word = 0x12345678;
     Console.WriteLine("{0:x}", bytes.Byte0);  // 78
     Console.WriteLine("{0:x}", bytes.Byte1);  // 56
     Console.WriteLine("{0:x}", bytes.Byte2);  // 34
     Console.WriteLine("{0:x}", bytes.Byte3);  // 12

// 詳しい解説
public struct TBytes
  public byte Byte0;

  public byte Byte1;

  public byte Byte2;

  public byte Byte3;

  public uint Word;
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.