Here are a couple of questions I gathered regarding exit select...
break;
?Example 1
Select case Name
case "Mary"
'...
case "John"
'...
case else
end select
Example 2
Select case Name
case "Mary"
'...
exit select
case "John"
'...
exit select
case else
end select
It's not the same as using the break
keyword with switch
statements from C-like languages. With a switch
, if you omit the break control it will fall through to the next case. With a Visual Basic Select
, control does not fall through; a break
is already implied.
However, you can use it as a guard clause, to avoid needing to nest code another level in an if
block. For example:
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
That's a little nicer than this equivalent 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
Any performance difference between these two samples is almost certainly insignificant compared to other factors.
One other use is if you have a lot of cases, and one of the cases is placed so that a match means you want to stop checking all the others. This already happens, and so you might just have an empty case statement there. But you might also add an Exit Select to make it clear to maintainers that you expect this case not to do anything else.