Frage

Hier sind ein paar Fragen, die ich in Bezug auf Ausgang gesammelt wählen ...

  1. Gibt es einen Grund für die Verwendung von Exit wählen in VB.NET?
  2. Ist der Grund, etwas mit Leistung zu tun?
  3. 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
War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top