Entwickler-Ecke
Basistechnologien - Verwendung einer nicht zugewiesenen lokalen Variablen?
M-Cha - Do 17.12.09 14:49
Titel: Verwendung einer nicht zugewiesenen lokalen Variablen?
Ich habe eine Methode gebaut und er gibt mir immer diesen Fehler aus:
Verwendung der nicht zugewiesenen lokalen Variablen "car"!
Kann mir da jemand helfen bitte?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| public string toGarage() { string car;
foreach (Fuhrpark name in names) { car = car + names.toXML(); } return car; } |
danielf - Do 17.12.09 15:04
Bevor du eine Variable verwenden kannst, musst sie einen Wert haben.
Bei einigen Typen (wie zum Beispiel der Numerischen int, double ...) setzt der Kompiler von sich aus einen Standardwert (0). Wenn es Kompiler es nicht macht musst du selber einen initialen Wert zuweisen.
Gruß Daniel
PS: Ich glaub ich hab es dir schonmal gesagt: Wenn man strings zusammenfügt sollte man aus Performanzgründen den StringBuilder verwenden.
M-Cha - Do 17.12.09 15:23
Ja hab ich diesmal auf die schnelle wieder vergessen. Ups :-)
Aber das ist auch nicht gerade das Wahre.... jetzt sagt er: "Nicht alle Codepfade geben einen Wert zurück."
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| public string toGarage() { foreach (Fuhrpark name in names) { return string.Format("{0}", names.toXML()); } } |
danielf - Do 17.12.09 15:27
Und was sagt dir die Fehlermeldung?
Überleg doch:
Welche Codepfade gibt es?
Wann wird welcher durchlaufen?
M-Cha - Do 17.12.09 15:37
Schon gelöst. Ich sollte mal etwas länger überlegen!
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| public string toGarage() { string car = "";
foreach (Fuhrpark name in names) { car = car + names.toXML(); } return car; } |
So geht es!
danielf - Do 17.12.09 15:41
Jepp ;)
Kha - Do 17.12.09 23:16
Der Vollständigkeit halber:
danielf hat folgendes geschrieben : |
| Bei einigen Typen (wie zum Beispiel der Numerischen int, double ...) setzt der Kompiler von sich aus einen Standardwert (0). |
Nein, das macht er bei keinem Typ einer lokalen Variablen. Klassenfelder werden dagegen (standardmäßig)
immer mit
default(T) initialisiert.
Ralf Jansen - Do 17.12.09 23:42
C#-Quelltext
1: 2: 3: 4:
| foreach (Fuhrpark name in names) { car = car + names.toXML(); } |
Mal so nebenbei warum iterierst du über names benutzt aber die Einzelwerte (name) dann nicht sondern nur wieder die Liste names :gruebel:
M-Cha - Fr 18.12.09 12:20
Mein Natürlich name!
War ein Schreibfehler von mir!
C#-Quelltext
1: 2: 3: 4:
| foreach (Fuhrpark name in names) { car = car + name.toXML(); } |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!