To nie tak samo jak przy użyciu słowa kluczowego break
z instrukcjami switch
z języków podobnych do języka C. Przy switch
, jeśli pominiesz kontrolkę przerwania, przejdzie ona do następnego przypadku. W przypadku Visual Basic Select
kontrola nie przechodzi; a break
jest już dorozumiany.
Można jednak użyć go jako klauzuli wartownika, aby uniknąć potrzeby umieszczania kodu w innym poziomie w bloku if
. Na przykład:
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
To trochę ładniejszy niż ten równoważnego kodu:
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
Wszelkie różnice wydajności pomiędzy tymi dwoma próbkami jest prawie na pewno nieistotne w porównaniu z innymi czynnikami.
Jednym z innych zastosowań jest to, że masz dużo przypadków, a jeden z przypadków jest umieszczony tak, że mecz oznacza, że chcesz przestać sprawdzać wszystkie pozostałe. To już się dzieje, więc możesz mieć tam puste oświadczenie dotyczące sprawy. Ale możesz również dodać opcję Wybierz wyjście, aby wyjaśnić opiekunom, że spodziewasz się, że ta sprawa nie spowoduje niczego innego.
Naprawdę, drugi przykład jest o wiele ładniejszy od pierwszego, ponieważ drugi jest strukturowany, a pierwszy nie. Instrukcje, które przerywają przebieg wykonywania (jak Goto, Exits, itp.), Niestrukturalizują kodu. –
@SoMoS: Lubię mieć klauzule strażnicze na początku metod sprawdzania warunków wstępnych, ale w środku sprawy Select, zgadzam się z tobą, że drugi przykład jest lepszy w większości przypadków. –