Es ist nicht die Das Gleiche gilt für die Verwendung des Schlüsselworts break
mit switch
Anweisungen aus C-ähnlichen Sprachen. Mit einem switch
, wenn Sie die Unterbrechungssteuerung weglassen, wird es zum nächsten Fall durchfallen. Mit einem Visual Basic Select
fällt die Steuerung nicht durch; a break
ist bereits impliziert.
Sie können es jedoch als Wächterklausel verwenden, um zu vermeiden, dass Sie eine andere Ebene in einem if
Block verschachteln müssen. Zum Beispiel:
Select Case SomeEnumVar
Case SomeEnum.SomeValue1
If Not SomeCondition Then Exit Select
'Do something
Case SomeEnum.SomeValue2
'Do something else
Case Else
'Default case
End Select
Das ist ein wenig schöner als dieser entsprechende Code ist:
Select Case SomeEnumVar
Case SomeEnum.SomeValue1
If SomeCondition Then
'Do something
End If
Case SomeEnum.SomeValue2
'Do something else
Case Else
'Default case
End Select
Jeder Performance-Unterschied zwischen diesen beiden Proben ist mit ziemlicher Sicherheit unbedeutend im Vergleich zu anderen Faktoren.
Eine andere Verwendung ist, wenn Sie viele Fälle haben, und einer der Fälle ist platziert, so dass eine Übereinstimmung bedeutet, dass Sie aufhören möchten, alle anderen zu überprüfen. Das ist bereits der Fall, und Sie haben dort möglicherweise eine leere Case-Anweisung. Sie können jedoch auch eine Exit-Auswahl hinzufügen, um Betreuern klar zu machen, dass dieser Fall nichts anderes zu tun hat.
Ich denke wirklich, dass das zweite Beispiel viel schöner ist als das erste Beispiel, weil das zweite Strukturiert ist und das erste nicht. Anweisungen, die den Ausführungsfluss unterbrechen (wie Goto, Exits usw.), strukturieren den Code nicht. –
@SoMoS: Ich mag Guard-Klauseln am Anfang von Methoden, um Vorbedingungen zu überprüfen, aber in der Mitte eines Select-Falles, stimme ich Ihnen zu, dass das zweite Beispiel in den meisten Fällen besser ist. –