Entwickler-Ecke

Basistechnologien - String wird ertwas hinzugefügt -> nicht zugewiesen


GURKE deluxe - Mo 18.10.10 10:58
Titel: String wird ertwas hinzugefügt -> nicht zugewiesen
Hallo,
Was mache ich hier falsch:

C#-Quelltext
1:
2:
string UC;
UC = UC + "ABC";


Es kommt immer wieder der Fehler:
"Verwendung der nicht zugewiesenen lokalen Varuablen "UC""

Und warum kann ich das hiermit lösen:

C#-Quelltext
1:
2:
string[] UC = new string[1];
UC[0] = UC[0] + "ABC";



Gruß
GURKE


Christian S. - Mo 18.10.10 11:08

Hi!

Du deklarierst den String zwar, weist aber keinen Wert zu. Auf der rechten Seite der zweiten Zeile wird der String aber gelesen. Da Du keinen Wert zugewiesen hast, meckert der Compiler. Lösen kannst Du es auch einfach durch das hier:

C#-Quelltext
1:
2:
string UC = ""//oder direkt mit type inference: var UC = "";
UC = UC + "ABC";


Deine Lösung geht IIRC deshalb, weil Elemente eines lokalen Arrays initialisiert werden. 100% sicher bin ich aber gerade nicht :gruebel:

Grüße
Christian


danielf - Mo 18.10.10 11:10

Hallo,

wie die Fehlermeldung sagt, willst du UC verwenden ob wohl es noch nicht zugewiesen ist.

Allerdings hat der zweite Code nichts mit dem ersten gemeinsam (außer den Variablennamen).

string uc = "ABC"; währe die einfachste Zuweisung einer Zeichenketten.

Der zweite Code hingegen verwendet ein Array von Strings. Sprich eine feste Liste von Zeichenketten. Mit new string[1] sagst du, dass du Liste die Größe 1 haben soll.

Der Array ist initialisiert und du kannst deshalb auf ein Index des Array zugreifen und es dem auch wieder zuweisen.

Gruß


Kha - Mo 18.10.10 21:19

user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
Der Array ist initialisiert und du kannst deshalb auf ein Index des Array zugreifen und es dem auch wieder zuweisen.
Genauer: Array-Elemente werden wie Klassenfelder implizit initialisiert, lokale Variablen nicht.


GURKE deluxe - Di 19.10.10 01:33

Okay, danke für die Antworten, habe den Fehler verstanden