C に似た言語のステートメントでbreak
キーワードを使用するのと同じではありません。switch
でswitch
、ブレーク コントロールを省略すると、次のケースにフォールスルーします。Visual BasicSelect
では、コントロールは失敗しません。abreak
はすでに暗示されています。
ただし、コードをブロック内の別のレベルにネストする必要がないように、ガード句として使用できますif
。例えば:
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
これは、次の同等のコードよりも少し優れています。
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
これら 2 つのサンプル間のパフォーマンスの違いは、他の要因と比較してほとんど重要ではありません。
もう 1 つの使用法は、多数のケースがあり、ケースの 1 つが配置されているため、一致すると他のすべてのチェックを停止する必要がある場合です。これはすでに発生しているため、そこに空の case ステートメントがあるだけかもしれません。しかし、Exit Select を追加して、このケースでは他に何もしないことをメンテナーに明確にすることもできます。