Ist es irgenwie möglich in einem Struct ein Array zu defenieren?
Möchte beispielweise
in ein struct die id haben und dann noch einen namen aber der name soll ein array sein mit einem index von 0-14, das normale array defenieren funktioniert nicht 😕
public string[] name = new string[100];
ergibt = cannot have instance field initializers in structs
public string[100] name;
geht natürlich auch nicht:
Array size cannot be specified in a variable declaration (try initializing with a 'new' expression)
und dann hab ich vorhin noch ne std gegoogelt:
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5)]
public string[] name;
bekomme ich aber wenn ichn breakpoint setze nen laufzeit error, außerdem hat das "vermutliche" array keinen index..
und
public string[] name;
geht zwar, nur hat das "array" kein index mehr...
naja evt wisst ihr noch was ich ausprobieren könnte
Hallo Pain,
erzeuge/initialisiere das Array im Konstruktor.
Allerdings ändert das nichts daran, dass im Default-Konstruktor das Array weiterhin uninitialisiert bleibt. Das kannst du bei structs nicht verhindern. Das geht nur, wenn du stattdessen eine Klasse scheibst.
Vor weiteren Nachfragen beachte bitte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore
danke..
gibts irgendwo ein beispiel wo beschrieben wird wie man soetwas in einer klasse defeniert? Bzw kann mir das jemand erklären?
denke nichtd as soetwas eine grundlage ist...
Was bringt dir für einen Namen ein String-Array mit einer Länge von 100? Könnte es sein das du quasi ein Char-Array haben willst, um dort einen Namen reinzupacken, der dann eben nur maximal 100 Zeichen lang sein kann?
Falls ich damit richtig liege könnte ein Puffer fixer Größe noch eine Alternative für dich sein:
unsafe struct ExampleStruct
{
public fixed char name[100];
}