以下是我收集的有关退出选择的几个问题......

  1. 在 VB.NET 中使用退出选择有什么原因吗?
  2. 其原因与性能有关系吗?
  3. 退出选择是否等于 break;?

实施例1

Select case Name
case "Mary"
'...
case "John"
'...
case else

end select

实施例2

Select case Name
case "Mary"
'...
exit select

case "John"
'...
exit select

case else

end select
有帮助吗?

解决方案

这与使用不一样 break 关键字与 switch 来自类 C 语言的语句。与一个 switch, ,如果省略中断控制,它将进入下一个情况。使用 Visual Basic Select, ,控制不落空;A break 已经暗示了。

但是,您可以将其用作保护子句,以避免需要将代码嵌套在另一个级别中 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 语句。但您也可以添加“退出选择”,以向维护人员明确表示您希望这种情况不会执行任何其他操作。

其他提示

出色地...这就像使用 goto...一旦找到正确的大小写,“退出”该大小写就没有用了,因为在 Visual Basic 中它将会消失。在 C# 中,您需要退出案例(在这种情况下,需要中断)。

重点是您可以在案例范围的中间使用它,例如:

Case 1
   Do something
   Do something
   Evaluate
      exit select
   Else
      Do something

这很丑,但你可以做到......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top