VS2013中是否已删除VB.NET编译器警告BC42324?

VS2013中是否已删除VB.NET编译器警告BC42324?,vb.net,visual-studio-2010,visual-studio-2013,compiler-warnings,Vb.net,Visual Studio 2010,Visual Studio 2013,Compiler Warnings,我最近安装了VS2013(与以前的VS2010一起安装),并注意到在编译相同的VB.NET代码时不再收到编译器警告“BC42324”(以下文本)(我在VS2010中重新编译以确认仍然显示警告): 在查询表达式中使用迭代变量可能会 意外的结果。相反,在循环中创建一个局部变量 并将迭代变量的值赋给它 关于的文档似乎表明警告仍然包括在内。我看到/没有看到带有以下代码的警告: Dim Numbers = {0, 1} For Each index In Numbers Dim SumPlusInde

我最近安装了VS2013(与以前的VS2010一起安装),并注意到在编译相同的VB.NET代码时不再收到编译器警告“BC42324”(以下文本)(我在VS2010中重新编译以确认仍然显示警告):

在查询表达式中使用迭代变量可能会 意外的结果。相反,在循环中创建一个局部变量 并将迭代变量的值赋给它

关于的文档似乎表明警告仍然包括在内。我看到/没有看到带有以下代码的警告:

Dim Numbers = {0, 1}
For Each index In Numbers
  Dim SumPlusIndex = Aggregate x In Numbers Select x + index Into Sum()
Next
这个警告真的被删除了吗?为什么会这样?如果不是的话,我的VS2010和VS2013安装之间是否存在其他可能导致差异的环境差异?

是的,这就是臭名昭著的错误。它已经咬了很多程序员,所以微软决定做点什么。他们为每个循环求解一个
,而不是为
循环求解一个
。您仍然可以触发如下警告:

Sub Main()
    For ix As Integer = 1 To 10
        Dim dlg = Sub()
                      Console.WriteLine(ix)    '' Eek!
                  End Sub
        '' etc...
    Next
End Sub