Исходный вопрос: массив C # в структуре
Буферы фиксированного размера работают для некоторых внутренних типов данных (bool, byte, short, int, ..), но когда мне нужно было определить массив struct внутри структуры, я до сих пор не был достаточно умен.
Далее предположим, что recordLayout - это структура, содержащая 18 полей, в том числе некоторые массивы простых типов, которые были решены с помощью небезопасных буферов и буферов фиксированного размера. Далее мне нужно заполнить следующую структуру (содержащую массив struct) из двоичного файла.
[StructLayout(LayoutKind.Sequential,Pack=1)]
unsafe struct dataBlock { // 2048 bytes
fixed ushort junk[5];
fixed recordLayout records[22]; // doesnt work of course, data type constrained
fixed byte filler[14];
}
Я пытался создать явную структуру LayoutKind, которая отображает фиксированный байтовый массив в массив записей, но сразу же наталкивается на то, что этого нельзя делать.