4

我刚刚被 LINQ 方法链中的一个意外赋值表达式所吸引。这导致在 foreach 循环中使用的枚举器 (IEnumerable) 永远不会进入循环块,而是遍历所需的集合项。这是用于创建迭代器的错误表达式的简化示例:

itemCollection.Where(theItem => theItem.status = false);

显然,使用这样的简单 LINQ 方法链相对容易捕获,但在更复杂的情况下,尤其是那些涉及多个迭代器或由复杂类提供的迭代器的情况下,追踪错误可能会浪费时间。是否有在 LINQ 方法链中标记分配的 Visual Studio 设置?

4

1 回答 1

1

ReSharper会将其标记为“未在任何表达式中使用分配的值”。正如 Virtlink 指出的那样,在对对象字段进行分配的情况下,Resharper 不会给出错误。我不认为有 VS 设置,但我很确定你可以为此编写一个插件。

于 2013-02-21T00:27:19.537 回答