Laden...

Array im Struct defenieren c#

Erstellt von Pain vor 15 Jahren Letzter Beitrag vor 15 Jahren 4.501 Views
P
Pain Themenstarter:in
34 Beiträge seit 2008
vor 15 Jahren
Array im Struct defenieren c#

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

1.130 Beiträge seit 2007
vor 15 Jahren

Leg die Länge im Constructor fest.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

P
Pain Themenstarter:in
34 Beiträge seit 2008
vor 15 Jahren

o.O? versteh ich nicht o.O
gehts evt genauer?

49.485 Beiträge seit 2005
vor 15 Jahren

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

P
Pain Themenstarter:in
34 Beiträge seit 2008
vor 15 Jahren

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...

K
36 Beiträge seit 2008
vor 15 Jahren

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];
}