Внимание! Извините, я плохой английский! Используя фиксированный массив в структурах:.NET C# небезопасный/фиксированный CS1666, работающий с массивом указателей на элементы в другом массиве
[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] { ®.r[rB], ®.r[rC], ®.r[rD], ®.r[rE], ®.r[rH], ®.r[rL], &rhl, ®.r[rA], ®.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;`
почему вы так переживаете такие махинации? –
Попробуйте сделать быстрый алгоритм. Эмулирование старого процессора. –
Вам не нужно использовать 'unsafe' и' struct', чтобы быстро сделать что-то в C#. –