C# und VB.Net gemeinsam nutzen

Verzweigungen: Select und Switch

Sicherlich kann man auf philosophischer Ebene darüber streiten, wann bei einer Verzweigung If und wann Select/Switch verwendet werden sollte. Jedoch gibt es bei dem Konstrukt Select/Switch einige kleine Unterschiede zwischen C# und VB.Net:

In VB.Net ist es möglich, mehrere Fälle in eine Select-Anweisung zu packen, mit Vergleichsoperatoren und mit Variablen zu arbeiten:

Select Case intMonat
Case 1, 2, 3
strQuartal = "erstes Quartal"
Case intM4, intM5, intM6
strQuartal = "zweites Quartal"
Case 7 To 9
strQuartal = "drittes Quartal"
Case Is > 9
strQuartal = "viertes Quartal"
End Select

In C# sind diese vier Optionen nicht möglich. Jedoch wird hier nicht jeder einzelne Zweig abgearbeitet, sondern es folgt sofort einen Sprung in den entsprechenden Teil:

switch (intMonat) {
case 1:
case 2:
case 3:
strMonat = "erstes Quartal"; break;
case 4:
case 5:
case 6:
strMonat = "zweites Quartal"; break;
case 7:
case 8:
case 9:
strMonat = "drittes Quartal"; break;
case 10:
case 11:
case 12:
strMonat = "viertes Quartal"; break;
}

benötigt, falls intMonat = 10 lediglich zwei Schritte. Ein klares Unterscheidungsmerkmal: Select sollte in VB.Net verwendet werden, wenn mehrere Fälle gleichzeitig abgefragt werden (um nicht mit OR verknüpfen zu müssen), bei vielen verschiedenen Anweisungen empfiehlt sich Switch in C# aus Geschwindigkeitsgründen.