C# 中創建一個類似C 的union結構

Blake36Q 8年前發布 | 720 次閱讀 C# c# union

這個c# 代碼片段使用ExplicitLayout attribute 來創建一個類似c 的union

using System.Runtime.InteropServices;
...
[StructLayout(LayoutKind.Explicit)]
internal struct Union
{
   [FieldOffset (6)] internal byte byteData;
   [FieldOffset (0)] internal string stringText;
   [FieldOffset (4)] internal short unionShort;
   [FieldOffset (4)] internal byte lowByte;
   [FieldOffset (5)] internal byte highByte;
}

public class TestUnion
{
   public static void Main( )
   {
      Union union = new Union ();
      union.stringText = "Union";
      union.byteData   = 0xFF;
      union.lowByte    = 0x01;
      union.highByte   = 0x01;
      Console.WriteLine (union.unionShort + " = " + 
         (union.highByte * 256 + union.lowByte).ToString());
   }            
}
 本文由用戶 Blake36Q 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!