Impressum  |   RSS  |  Registrieren

tsql

C# Switch

Bei einer switch und case Anweisung muss im Gegensatz zu anderen Sprachen jeder case Fall mit einem break bzw. dem goto Schlüsselwort abgeschlossen werden, da der Compiler sonst eine Fehlermeldung erzeugt. Das erste Beispiel zeigt eine einfache Fallunterscheidung. Sollte der Variablen i ein von den definierten Fällen abweichender Wert zugewiesen werden, wird der default Fall abgearbeitet.
 

1
2
3
4
5
6
7
8
9
10
11
12
13
int i = 1;
switch (i)
{
    case 1:
        Console.WriteLine("Fall 1");
        break;
    case 2:
        Console.WriteLine("Fall 2");
        break;
    default:
        Console.WriteLine("Standard Fall");
        break;
}

 
 
Eine einfache switch Anweisung mit einer Zeichenfolge hat folgenden Aufbau:
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
string s = "Oracle";
switch (s)
{
    case "mysql":
	break;
    case "MS Access":
	break;
    case "MS SQL Server":
        break;
    case "Oracle":
        break;
    default:
        break;
}

 
 
Möchten Sie mit mehreren Fällen gleichen Code abarbeiten, müssen die Anweisungen frei bleiben:
 

1
2
3
4
5
6
7
8
9
10
11
12
int n = 2;
switch (n)
{
    case 1:
    case 2:
    case 3:
        Console.WriteLine("Fall 1,2 und 3");
        break;
    default:
        Console.WriteLine("Standard Fall");
        break;
}

 
 
Und dann gibt es noch das goto Schlüsselwort, welches wegen seiner Verwirrung stiftenden Sprunge aber zu vermeiden ist:

1
2
3
4
5
6
7
8
9
10
11
12
13
int i = 1;
switch (i)
{
    case 1:
        Console.WriteLine("Fall 1");
        goto case 2;
    case 2:
        Console.WriteLine("Fall 2");
        goto default;
    default:
        Console.WriteLine("Standard Fall");
        break;
}

 
 
Und zum Schluß noch ein Beispiel für die Auswertung von MessageBox-Rückgabewerten:
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
switch(MessageBox.Show("Alles In Ordnung?",
           "C# Switch",
           MessageBoxButtons.YesNoCancel,
           MessageBoxIcon.Asterisk))
{
    case DialogResult.Yes:
        //Ja
        break;
 
    case DialogResult.No:
        //Nein
        break;
 
    case DialogResult.Cancel:
        //Abbrechen
        break;
}


Weitere Artikel in dieser Kategorie