c#:查找错误:if(false)

Sim*_*aus 8 c# debugging visual-studio-2010

我刚刚在我的程序中发现了一个错误(经过一些调试和撕裂我的头发)

bool first = true;

foreach (RdAbstractNode node in listNodes)
{
    if (!first)
    {
        // do stuff (does not change first)
    }
    // do more stuff (does not change first)
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到first的那样永远true- 永远不会改变.所以if(!first)基本上是if(false).
尽管编译器设置为级别4(最高级别),但编译器未生成警告.

我怎样才能找到类似的if(false)错误?

我正在使用VS 2010,.Net 4.0编译器,项目设置.Net 2.0

Bal*_*a R 13

使用Resharper,你会得到这样的警告

在此输入图像描述

  • R#很好,但是单元测试是免费的,并且会捕获R#会错过的逻辑错误. (3认同)

dah*_*byk 10

我不知道有哪些编译器功能可以帮助您 - 您需要进行单元测试.