Właśnie znalazłeś błąd w moim programie (po pewnej ilości debugowania i łzawienie moje włosy)C#: Znajdowanie błędów: if (false)
bool first = true;
foreach (RdAbstractNode node in listNodes)
{
if (!first)
{
// do stuff (does not change first)
}
// do more stuff (does not change first)
}
Jak widać first
jest zawsze true
- nigdy zmienione. Więc if(!first)
jest w zasadzie if(false)
.
Kompilator nie wygenerował ostrzeżenia, mimo że jest ustawiony na poziom 4 (najwyższy poziom).
Jak mogę znaleźć podobne błędy if(false)
?
używam VS 2010, .Net 4.0 kompilator, projekt ustawienie .NET 2.0
twoje '// rób rzeczy' może zrobić coś, co mogłoby odwrócić' pierwsze 'ale zobaczyłem, że Resharper wyświetla ostrzeżenia o rzeczach, które zawsze są fałszywe lub prawdziwe. –
lub raczej '// zrobić więcej rzeczy' musiałby być tym, który odwrócił zmienną. – cdeszaq