1
ReSharper的Access to Modified Closure
警告通常是相当有帮助的。我只是注意到,当我打电话的Any
方法的内部for each循环,我会,如果我不使用的打开和关闭括号得到一个警告。当我加入()
,错误消失。为什么访问修改关闭警告消失时可枚举的方法调用()
是否错误本身消失,或者我只是不小心被骗ReSharper的静态代码分析检测。
Dim groupExists as Boolean
For each oldPerson in oldData
'access to modified closure warning on oldPerson.groupId
groupExists = (From newPerson In newData
Where newPerson.GroupId = oldPerson.groupId).Any
'no closure problem reported
groupExists = (From newPerson In newData
Where newPerson.GroupId = oldPerson.groupId).Any()
Next
当然,我可以把For Each
循环中下面的代码并比较newPerson.GroupId
到本地声明的变量解决这个问题。
'declare locally to avoid access to modified closure
Dim groupId as Integer = person.groupId