这与在类 C 语言的语句中使用break
关键字不同。switch
使用 a switch
,如果您省略了中断控制,它将进入下一个案例。使用 Visual Basic Select
,控制不会失败;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
与其他因素相比,这两个样本之间的任何性能差异几乎可以肯定是微不足道的。
另一种用途是,如果您有很多案例,并且放置其中一个案例以便匹配意味着您想要停止检查所有其他案例。这已经发生了,所以你可能只有一个空的 case 语句。但是你也可以添加一个 Exit Select 来让维护者清楚你希望这个案例不会做任何其他事情。