Autor Beitrag
M-Cha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 17.12.09 14:49 
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?

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: 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."

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
    public string toGarage()
       {
           //string car;

           foreach (Fuhrpark name in names)
           {
               //car = car + names.toXML();

               return string.Format("{0}", names.toXML());
           }
       }
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 17.12.09 15:27 
Und was sagt dir die Fehlermeldung?

Überleg doch:
Welche Codepfade gibt es?
Wann wird welcher durchlaufen?
M-Cha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 17.12.09 15:37 
Schon gelöst. Ich sollte mal etwas länger überlegen!

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 17.12.09 15:41 
Jepp ;)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 17.12.09 23:16 
Der Vollständigkeit halber:

user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 17.12.09 23:42 
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Fr 18.12.09 12:20 
Mein Natürlich name!

War ein Schreibfehler von mir!

ausblenden C#-Quelltext
1:
2:
3:
4:
foreach (Fuhrpark name in names)
{
    car = car + name.toXML();
}