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.