.NET C#不安全/修复了CS1666使用指向另一个数组中元素的指针数组的问题

.NET C#不安全/修复了CS1666使用指向另一个数组中元素的指针数组的问题,c#,arrays,pointers,fixed,unsafe,C#,Arrays,Pointers,Fixed,Unsafe,警告!对不起,我英语不好! 在结构中使用固定数组: [StructLayout(LayoutKind.Explicit, Size = 12)] public unsafe struct union_reg { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] [FieldOffset(0)] public fixed byte r[12]; [FieldOffset(0)] public fi

警告!对不起,我英语不好! 在结构中使用固定数组:

[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe struct union_reg
{
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
    [FieldOffset(0)]
    public fixed byte r[12]; 

    [FieldOffset(0)]
    public fixed UInt16 rp[6]; 
}
尝试创建并通过指针数组访问元素:

union_reg reg = new union_reg();
byte*[] r = new byte*[9] { &reg.r[rB], &reg.r[rC], &reg.r[rD], &reg.r[rE], &reg.r[rH], &reg.r[rL], &rhl, &reg.r[rA], &reg.r[6] };
若我在函数中声明它,一切正常,但若我在类中尝试声明它,我会得到错误CS1666。请帮忙解决这个问题

const byte rB = 1;
const byte rC = 0;
const byte rD = 3;
const byte rE = 2;
const byte rH = 5;
const byte rL = 4;
const byte rA = 7;
const byte rF = 6;`

此错误在上有明确的解释


在一个未固定的类中,不能将固定类型作为字段/属性。

我尝试过,但得到了相同的错误
fixed(byte*b=®.r[rB]){}
尝试创建快速算法。模拟旧的cpu。我无法重现错误:rB、rC、rD等是如何定义的?