【发布时间】:2012-09-14 19:37:56
【问题描述】:
int count = itemsToValidate.Count;
foreach(var item in itemsToValidate)
{
item.ValidateAsync += (x, y) => this.HandleValidate(ref count);
}
private void HandleValidate(ref int x)
{
--x;
if (x == 0)
{
// All items are validated.
}
}
对于上述代码,resharper 抱怨“访问修改后的闭包”。如果我将其更改为对象类型,则不会这样做。为什么这是一个闭包,即使我经过 ref ?
【问题讨论】:
-
实际场景中有异步服务调用,我想知道是否所有的item都被验证过,以便让用户知道。
-
也许是因为 Resharper 很烂? (严肃的问题,因为你的代码运行良好)
标签: c#-4.0 lambda resharper resharper-6.0