Хочу сделать это:
(РЕДАКТИРОВАТЬ: неверный пример кода, игнорировать и пропустить ниже)
struct RECORD {
char[] name = new char[16];
int dt1;
}
struct BLOCK {
char[] version = new char[4];
int field1;
int field2;
RECORD[] records = new RECORD[15];
char[] filler1 = new char[24];
}
Но, будучи неспособным объявить размеры массива в структуре, как мне перенастроить это?
РЕДАКТИРОВАТЬ: причина для разметки в том, что я использую BinaryReader для чтения файла, написанного на структурах C. Используя BinaryReader и объединение структур C # (FieldOffset (0)), я хочу загрузить заголовок в виде байтового массива, а затем прочитать его так, как было задумано изначально.
[StructLayout(LayoutKind.Sequential)]
unsafe struct headerLayout
{
[FieldOffset(0)]
char[] version = new char[4];
int fileOsn;
int fileDsn;
// and other fields, some with arrays of simple types
}
[StructLayout(LayoutKind.Explicit)]
struct headerUnion // 2048 bytes in header
{
[FieldOffset(0)]
public byte[] headerBytes; // for BinaryReader
[FieldOffset(0)]
public headerLayout header; // for field recognition
}