desee hacer esto: (EDIT: código de ejemplo malo, ignorar y pasar a continuación)C# matriz dentro de una estructura
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];
}
Pero al no poder declarar tamaños de matriz de estructura, ¿cómo vuelvo a configurar esto?
EDITAR: El motivo del diseño es que estoy usando BinaryReader para leer un archivo escrito con estructuras C. Utilizando BinaryReader y una unión estructural C# (FieldOffset (0)), quiero cargar el encabezado como una matriz de bytes, y luego leerlo como estaba previsto originalmente.
[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
}
Tamaño fijo Buffers - http://msdn.microsoft.com/en-us/library/zycewsya.aspx – Joren
@Joren, ¿por qué no agregarlo como respuesta? – atoMerz
Usted sabe que un C# 'char' es de 2 bytes, mientras que un C' char' es generalmente de 1 byte, ¿no? – CodesInChaos