【发布时间】:2013-09-06 17:30:28
【问题描述】:
这不是一个真正的问题,但更多的是我无法通过自己的方式解决的好奇心。我肯定不会因此而失眠。
在 VB.NET 中,switch 语句的语法是(如 MSDN here 中所述):
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
请注意,在第一行中,Case 在方括号中,表示它是可选的。
事实上,以下示例的编译和执行方式与包含 Case 关键字的方式相同,至少在我尝试过的基本示例中是这样:
Select myIntVar
Case 0
Return "Nothing"
Case 1
Return "Just one"
Case Else
Return "Something else"
End Select
因此我的问题如下:
除了语法之外,使用Select 和Select Case 打开 switch 语句是否有任何区别?
【问题讨论】:
-
我想不到。如果
MSDN没有提及任何事情,人们可能会认为它没有。我不想假设... -
有趣的问题,我敢打赌“CASE”是可选的,因为它似乎与没有它的 C# switch 语句一致(也许“CASE”部分只是旧 vb 的遗留物),并且它可能在 CLR 中以相同的方式编译
-
另一个有趣的方面是,尽管根据 MSDN,
Case是可选的,但如果您忽略它,Visual Studio 会自动为您添加它。