当前位置:  开发笔记 > 编程语言 > 正文

我为什么要使用退出选择?

如何解决《我为什么要使用退出选择?》经验,为你挑选了2个好方法。

以下是关于退出选择的几个问题......

    在VB.NET中使用exit select是否有任何理由?

    原因与性能有关吗?

    退出选择是否等于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

Joel Coehoor.. 37

这与使用类似C语言的语句的break关键字不同switch.使用a 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语句.但是你也可以添加一个Exit Select来向维护者明确表示你希望这种情况不会做任何其他事情.



1> Joel Coehoor..:

这与使用类似C语言的语句的break关键字不同switch.使用a 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语句.但是你也可以添加一个Exit Select来向维护者明确表示你希望这种情况不会做任何其他事情.


我真的认为第二个例子比第一个例子好得多,因为第二个例子是结构化而第一个不是.打破执行流程的指令(如Goto,退出等)会使代码失效.

2> gbianchi..:

好吧......就像使用goto一样......一旦你找到了正确的案例就没有用"退出"案例,因为在Visual Basic中它会出去.在C#中你需要退出案例(在这种情况下,休息一下).

关键是你可以在案例范围的中间使用它,例如:

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

这很难看,但你可以做到......

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有