VB无法访问代码错误/警告

Bin*_*ier 5 vb.net compiler-construction

我大部分时间都在使用VB.Net超过一年,并且注意到了这一点

我是疯了还是VB.Net 没有 "无法访问的代码"警告?

即使在两个写字线调用之间存在回报,下面的编译也会非常愉快地发出警告或错误.

Sub Main()
    Console.WriteLine("Hello World")
    Return
    Console.WriteLine("Unreachable code, will never run")
End Sub
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?有没有办法切换到我找不到的.

如果没有,是否有充分理由将其遗漏?(或者我认为这是一个悲惨的事态我是对的)

原谅这个问题的咆哮,这不是咆哮,我想要一个答案.

谢谢


我已经在MS Connect上提出了这个问题,就像bug#428529一样

更新

我收到了VB Teams项目经理的以下内容

感谢您抽出宝贵时间报告此问题.编译器对此方案的支持有限,正如您所指出的,我们没有针对无法访问的代码的警告.我们的流分析算法确实处理了一些场景,例如:

Sub Main()
    Dim x As Integer
    Return
    x = 4
End Sub
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您将收到一条警告,指出x从未被分配过.对于您提到的情况,我们将不得不考虑为将来的版本实现该功能.

Jar*_*Par 5

我的猜测是这是编译器的疏忽。在任何语言中,流程控制都是一个很难正确解决的问题,尤其是像 VB 这样具有多种不同流程控制机制的语言。例如,

  • 例外情况
  • 出错时(恢复、转到等...)
  • 退出通话

如果您对这个问题有强烈的感受,请在Connect上提交错误。我们非常重视通过 Connect 提交的错误,并尽最大努力修复尽可能多的错误。