Массив C# внутри структуры ⇐ C#

Место общения программистов C#
Anonymous
Массив C# внутри структуры

Сообщение Anonymous »

Хотите сделать это:
(РЕДАКТИРОВАТЬ: неправильный пример кода, игнорируйте и пропустите ниже)

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
}


Подробнее здесь: https://stackoverflow.com/questions/870 ... n-a-struct

Вернуться в «C#»