Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 是否可以使用包含Case-Else场景的复合Select-Case语句?_Vb.net - Fatal编程技术网

Vb.net 是否可以使用包含Case-Else场景的复合Select-Case语句?

Vb.net 是否可以使用包含Case-Else场景的复合Select-Case语句?,vb.net,Vb.net,我想在VB中,利用复合语句中的Case-Else场景,如C中的默认值,执行如下操作。这可能吗 Select Case someString Case "UniqueScenario1","UniqueScenario2" DoUniqueAction(); Case "Default", Else DoDefaultAction(); End Select 我不明白使用新行和另一个DoDefaultAction有什么问题: 但是,如果您想在Case

我想在VB中,利用复合语句中的Case-Else场景,如C中的默认值,执行如下操作。这可能吗

Select Case someString
    Case "UniqueScenario1","UniqueScenario2"
       DoUniqueAction();
    Case "Default", Else
       DoDefaultAction();
End Select

我不明白使用新行和另一个DoDefaultAction有什么问题:

但是,如果您想在Case default和Case Else中执行相同的操作,您可以省略它:

Select Case someString
    Case "UniqueScenario1", "UniqueScenario2"
        DoUniqueAction()
    Case Else
        DoDefaultAction()
End Select

使用Select Case someString Case UniqueScenario1、UniqueScenario2 DoUniqueAction Case Default DoDefaultAction Case Else DoDefaultAction End Select有什么不好?这应该很明显,我不想在两个地方定义代码。我不必用C来做,我想知道是否有一种方法可以让我不用用VB来做。正如下面提到的,这在VB.NET中是不可能的,但是C开关和VB.NET选择..案例是非常不同的。在C开关中有很多东西是不受支持的,比如范围、比较运算符或ISF类型检查。这是在VB.NET中不起作用的事情之一。这将起作用,但是我更愿意在代码中指出,存在某些预期值,它们应该以与意外值相同的方式处理。这样,当有人重新访问代码时,更清楚的是,某些值不属于这个“包罗万象”的范围,我们不必重复业务逻辑规则。@moarboilerplate:那么,基本上,在伪代码中,您想说默认值或LSE是否为DoDefaultAction?在我看来,它的可读性甚至不如使用单独的If…ElseIf…elsesimular来处理我的第一个重复案例。在这种情况下,很明显,两者都会导致相同的行为,但明确地对待违约很重要。这种方式也更易于调试和维护,例如,如果您想要更改业务逻辑或单独记录它们。但是,不支持在同一行中使用特定值和Case-Else。
Select Case someString
    Case "UniqueScenario1", "UniqueScenario2"
        DoUniqueAction()
    Case Else
        DoDefaultAction()
End Select