Vb.net 是否可以使用包含Case-Else场景的复合Select-Case语句?
我想在VB中,利用复合语句中的Case-Else场景,如C中的默认值,执行如下操作。这可能吗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
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