Запретить присваивание в условном выражении в visual studio 2010

Учитывая следующий код:

    bool test = false;
    bool test2 = true;

    if (test = test2)
    {

    }

Я хочу получить предупреждение при компиляции этого кода, как, вероятно, я хотел == вместо этого. Я не получаю предупреждения от компилятора и нигде не могу найти для него правила анализа кода (fxcop или stylecop).

Самое близкое предупреждение компилятора, которое я нашел, было CS0665: http://msdn.microsoft.com/en-us/library/c1sde1ax%28v=vs.90%29.aspx Но это срабатывает, только если я это сделаю:

if (test = true)
  • Кто-нибудь может указать мне на существующее правило или инструмент, который я могу интегрировать в процесс сборки, который сработает на этом?
  • Есть ли веская причина, почему мы хотели бы разрешить эту первую конструкцию?

1 ответ

ReSharper отобразит предупреждение об этом, говоря:

Expression is always true

Я бы предложил использовать "Настроить серьезность проверки" и обновить его до Error

Другие вопросы по тегам