Autor Beitrag
GURKE deluxe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: Mo 18.10.10 10:58 
Hallo,
Was mache ich hier falsch:
ausblenden 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:
ausblenden C#-Quelltext
1:
2:
string[] UC = new string[1];
UC[0] = UC[0] + "ABC";



Gruß
GURKE
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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:
ausblenden 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: Di 19.10.10 01:33 
Okay, danke für die Antworten, habe den Fehler verstanden