Warum sollte ich wählen Ausfahrt benutzen?
-
20-09-2019 - |
Frage
Hier sind ein paar Fragen, die ich in Bezug auf Ausgang gesammelt wählen ...
- Gibt es einen Grund für die Verwendung von Exit wählen in VB.NET?
- Ist der Grund, etwas mit Leistung zu tun?
- Ist der Ausgang auf
break;
gleich wählen?
Beispiel 1
Select case Name
case "Mary"
'...
case "John"
'...
case else
end select
Beispiel 2
Select case Name
case "Mary"
'...
exit select
case "John"
'...
exit select
case else
end select
Lösung
Es ist nicht das gleiche wie das break
Schlüsselwort mit switch
Aussagen von C-ähnlichen Sprachen verwenden. Mit einem switch
, wenn Sie die Bruchkontrolle unterlassen wird es fällt auf den nächsten Fall durch. Mit Visual Basic Select
, fällt Kontrolle nicht durch; ein break
bereits angedeutet.
Sie können jedoch es als Wächter-Klausel verwenden, eine weitere Ebene in einem if
Block, um zu nisten Code zu vermeiden. 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 Ersatz Code:
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 ab.
Eine andere Verwendung ist, wenn Sie eine Menge von Fällen haben, und einer der Fälle ist so angeordnet, dass eine Übereinstimmung Mittel Sie alle anderen aufhören wollen zu überprüfen. Dies geschieht bereits, und so können Sie nur eine leere Case-Anweisung haben dort. Aber Sie könnten auch eine Beenden Auswahl hinzufügen, um es zu Maintainer deutlich zu machen, dass Sie diesen Fall erwarten nichts anderes zu tun.
Andere Tipps
Nun ja ... Es ist wie ein GOTO ... Sobald Sie den richtigen Fall gefunden gibt es keine Verwendung in „Verlassen“ der Fall, da in Visual Basic wird es ausgehen wird. In C # müssen Sie den Fall beenden (in diesem Fall mit einer Pause).
Der Punkt ist, dass man es in der Mitte des Umfangs eines Falles verwenden kann, so etwas wie:
Case 1
Do something
Do something
Evaluate
exit select
Else
Do something
Es ist hässlich, aber Sie können diese ...
tun