【发布时间】:2011-04-06 20:54:57
【问题描述】:
在我们的一个类中找到了这段代码,但我不明白第一个 case 语句在做什么:“Case i = 1”。我确信有人只是从 IF/ELSE 语句中错误地转换了它,但为什么 VB.NET 允许这种语法。这样写是什么意思?
Dim i As Integer = 1
Select Case i
Case i = 1
Return True
Case Else
Return False
End Select
【问题讨论】:
-
这很奇怪。我猜用“return true”替换它。
-
asawyer,当然这不是真正的代码。这是我的代码 jist 的简化版本。不是真的在寻找如何重写它。希望了解以这种方式编写时的含义。
-
将 Option Strict On 放在文件顶部以捕获此类错误。现在您在该代码上得到了一个很好的编译器错误。
-
仅供参考,Option Strict 认为这不是编译错误。
-
@Denis 它应该。 Option Strict On 不允许从
Boolean到Integer的隐式转换,这将导致Case i = 1非法。我已经在 VS2010 中验证了这一点