我记得看过别人这么定义过。
比如
struct test
{
    int a;
    
    //下面3个值只有一种存在 可以通过设置来改变int后面的字节数量。
    byte b;
    short c;
    double d;
}是否可以实现?

解决方案 »

  1.   

    FieldOffset[StructLayout(LayoutKind.Explicit)]
    public class SYSTEM_INFO
    {
    [FieldOffset(0)] public ulong OemId;
    [FieldOffset(4)] public ulong PageSize;
    [FieldOffset(16)] public ulong ActiveProcessorMask;
    [FieldOffset(20)] public ulong NumberOfProcessors;
    [FieldOffset(24)] public ulong ProcessorType;
    }
      

  2.   

    我建立了一个结构
    [FieldOffset(0)]
    public int abc;
    [FieldOffset(1)]
    public byte bbb;
    [FieldOffset(2)]
    public short ssss;
    [FieldOffset(4)]
    public int iiiiii;
    但是我用sizeof得到的值是8,是否可以动态改变他的长度呢?
      

  3.   

    是这样的
    [FieldOffset(0)]
    public int abc;
    [FieldOffset(4)]
    public byte bbb;
    [FieldOffset(4)]
    public short ssss;
    [FieldOffset(4)]
    public int iiiiii;
    但是我用sizeof得到的值是8,是否可以动态改变他的长度呢?