我最近遇到了一个错误,这个错误是在我的VB.NET项目中For Each循环中意外重用变量引起的。
Dim iterator As Integer = 0
For Each iterator In {1, 2, 3}
Next
Console.WriteLine(iterator)
此代码将输出'3' 我应该为For Each循环使用不同的变量名。循环正在修改用于其他目的的变量。
我可以通过关闭Option Infer来阻止此行为。然而,这在我正在进行的中等规模项目中引入了很多(3000个ish)错误。
我更喜欢的是一个代码分析规则,它在没有类型声明的情况下标记For Each的使用。
我已经快速浏览了Visual Studio 2017提供的代码分析规则,但看不到规则。我担心我可能需要创建一个自定义规则。
在我开始弄清楚自定义规则之前,是否有人可以澄清规则不存在?