在VB.NET中选择Case Fall through with Not Condition

kur*_*ura 4 vb.net switch-statement select-case conditional-statements

如何在下面的选择案例中添加Not条件.

<>适用于单个值,"To"适用于Range,但值是特定值,不存在一系列数字.在这种情况下是否可以使用select case,或者我必须切换到if-else.例如:我不希望在值为0和3时执行大小写

           Select value
             case 0,1,2,3
           End Select
Run Code Online (Sandbox Code Playgroud)

Cod*_*ray 11

我不确定我理解这个问题......

为什么你不能像这样编写示例代码:

Select Case value
    Case 1, 2
        DoWork()
End Select
Run Code Online (Sandbox Code Playgroud)

value = 0或时没有任何东西被执行value = 3.提供给Case语句的一系列值不必是顺序的.


更新以回应评论:

我会这样写,利用Case Else标签:

Select Case myComboBox.SelectedIndex
    Case 1, 5, 8
        'The suggestion is acceptable, so process it
        DoWork()
    Case Else
        'The suggestion is invalid, so show an error
        MessageBox.Show("You cannot select that option. " & _
                        "Please choose options 1, 5, or 8 instead.", _
                        "Invalid Selection", _
                        MessageBoxButtons.OK, MessageBoxIcon.Error)
End Select
Run Code Online (Sandbox Code Playgroud)

当然,如果在用户选择正确值的情况下实际上没有任何"工作"要做,那么使用Select Case语句似乎没什么意义.基本规则应该是使用哪个使您的代码最清晰,最容易理解.对于Select CaseIf声明更快的怀疑几乎没有效力- 编译器足够聪明,几乎在每种情况下都能产生几乎相同的结果.