Entwickler-Ecke

C# - Die Sprache - Variable in if-Anweisung initialisieren und verwenden


tripfish - Do 10.07.08 12:17
Titel: Variable in if-Anweisung initialisieren und verwenden
Hallo,

ich stehe ganz am Anfang der C#-Programmierung. Daher ist das sicher eine Anfängerfrage.

Wie kann ich eine Variable die in einer if-Anweisung initialisiert wurde, außerhalb mit dem gleichen Wert weiter verwenden?

Beispiel:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
...
int var1;
int var2;

if (Bedingung)
{
var1 = 12;
var2 = 33;
}

Console.WriteLine("Ausgabe: {0}, {1}", var1, var2);


Da der Wert der Variable lokal zugewiesen wurde kann ich ihn außerhalb der if-Anweisung nicht mehr nutzen. Wie kann man sowas realisieren?

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Moderiert von user profile iconChristian S.: Topic aus Basistechnologien verschoben am Do 10.07.2008 um 12:20


Christian S. - Do 10.07.08 12:21

Hallo und :welcome:!

Natürlich kannst Du den Wert nutzen! Nur wenn eine Variable innerhalb der if-Awneisung deklariert wird, ist sie außer außerhalb nicht nutzbar.

Grüße
Christian


JüTho - Do 10.07.08 12:26

Hallo,

Du hast die Fehlermeldung des Compilers vermutlich falsch verstanden: Durch "int var1" wurde die Variable deklariert; sie ist also innerhalb des gesamten Blocks, zu dem diese Zeile gehört, gültig. Du hast aber den Fehler gemacht, nur in einem Zweig der if-Abfrage einen Wert zuzuweisen; im (nicht benutzten) else-Zweig wird kein Wert zugewiesen. Es gibt deshalb eine Verzweigung (nämlich else), bei der var1 undefiniert bleibt.

Lösung:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
...
int var1 = 0;
int var2 = 0;

if (Bedingung)
{
  var1 = 12;
  var2 = 33;
}

Console.WriteLine("Ausgabe: {0}, {1}", var1, var2);

Merke: Du musst genau auf den Gültigkeitsbereich von Variablen achten: innerhalb eines Blocks "{...}", innerhalb einer Methode, innerhalb einer Klasse.

Gruß Jürgen

PS. Sorry, habe Christians Antwort übersehen, während ich geschrieben habe.


Christian S. - Do 10.07.08 12:29

user profile iconJüTho hat folgendes geschrieben:
Sorry, habe Christians Antwort übersehen, während ich geschrieben habe.
Da wird doch einer nicht etwa kein AJAX aktiviert haben ;-)

Aber in dem Fall war's ja gut, denn an die Meldung wegen der nicht gesetzten Variable habe ich nicht gedacht :-)


tripfish - Do 10.07.08 12:32

Super, vielen Dank für die schnellen Antworten.
Das hat mein Problem gelöst! :)