V3183. Code formatting implies that the statement should not be a part of the 'then' branch that belongs to the preceding 'if' statement.
Анализатор обнаружил инструкцию, относящуюся к оператору 'if'. При этом форматирование не соответствует логике исполнения: код может содержать ошибку.
Рассмотрим пример:
string GetArgumentPositionStr(Argument argument)
{
if (argument.first)
return "first";
if (argument.second)
if (argument.third)
return "third";
return String.Empty;
}
В данном примере пропущена 'then' ветвь условной конструкции 'if (argument.second)'. Из-за этого ошибочный фрагмент кода будет работать так же, как и приведённый ниже:
if (argument.second)
{
if (argument.third)
return "third";
}
Исправленный вариант:
string GetArgumentPositionStr(Argument argument)
{
if (argument.first)
return "first";
if (argument.second)
return "second";
if (argument.third)
return "third";
return String.Empty;
}
Данная диагностика классифицируется как: