關鍵字:StructLayout、LayoutKind.Explicit、FieldOffset 輸出的值: 欄位定義交換順序: 同樣的偏移量,輸出的值以最後一個欄位的值為準。 CLR保持開發人員的定義欄位的順序。 ...
關鍵字:StructLayout、LayoutKind.Explicit、FieldOffset
[StructLayout(LayoutKind.Explicit)] public class AA { [FieldOffset(0)] public readonly Int16 m_x = 55; [FieldOffset(0)] public readonly Byte m_b = (Byte)22; }
AA m = new AA(); var d1 = m.m_b; var d2 = m.m_x;
輸出的值:
欄位定義交換順序:
[StructLayout(LayoutKind.Explicit)] public class AA { [FieldOffset(0)] public readonly Byte m_b = (Byte)22; [FieldOffset(0)] public readonly Int16 m_x = 55; }
同樣的偏移量,輸出的值以最後一個欄位的值為準。
CLR保持開發人員的定義欄位的順序。