Hallo zusammen,
ich bin am verzweifeln.
Ich habe folgende Funktion geschrieben:
public static void fill_array( string []ecunames, string trace_file )
Die Funktion ist in der Klasse Array_Tools.
Diese Funktion soll ein string Array mit Werten fuellen.
In der methode Main rufe ich die Funktion wie folgt auf:
Array_Tools.fill_array( ecuNames, trace_file );
Das Array habe ich wie folgt in Main dekrlaiert:
string[] ecuNames;
Nun meldet der Kompiler immer folgenden Fehler:
E:\C_Sharp\Regex\Class1.cs(41): Verwendung von möglicherweise nicht zugewiesenen lokalen Variablen 'ecuNames'
Ich kapiers nicht warum.
Das string Array ist doch in Main sauber deklariert.
Ich habe es auch so probiert:
Array_Tools.fill_array( ref ecuNames, trace_file );
Ohne Erfolg.
Keine Ahnung was falsch ist.
Gruss
JoFenchel
Hallo jofenchel,
deklariert ja,
string[] ecuNames;
aber nicht initialisiert, wie die Fehlermeldung schon sagt.
string[] ecuNames = new string [10];
Arrays sind in C# Objekte, die erst erzeugt werden müssen, um mit ihnen arbeiten zu können
herbivore
Hallo herbivore,
nun klappt es.
Ich dachte Arrays sind dynamische Objekte und mit der Anweisung string [] Name wird das Objekt schon erzeugt.
War da wohl auf dem Holzweg.
C# ist irgendwie komisch.......
Original von jofenchel
C# ist irgendwie komisch.......
Ich kann nicht nachvollziehen, was daran komisch sein sollte.
Hallo jofenchel,
Variablen sind was anderes als Objekte.
string[] ecuNames;
deklariert man eine Variable (vom Typ String-Array); genauso wie man mit
string ecuName;
eine Variable vom Typ String deklariert.
In beiden Fällen muss man die Objekte (vom Typ String-Array bzw. vom Typ String), die in den Variablen gespeichert werden sollen, erst noch mit new erzeugen.
herbivore