Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V3228. It is possible that an...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V3228. It is possible that an assigned variable should be used in the next condition. Consider checking for misprints.

26 Ноя 2025

Анализатор обнаружил потенциальную ошибку: вместо одной переменной была проверена другая, имеющая схожее имя.

Рассмотрим пример:

bool UserProcessing()
{
  ....
  var user1 = FindUser(id1);

  if (user1 == null)
    return false;
  ....
  var user2 = FindUser(id2);

  if (user1 == null)
    return false;
  ....
}

В данном примере инициализируются две переменные со схожими именами: user1 и user2. После инициализации переменных значение каждой из них должно проверяться на равенство с null. Однако из-за опечатки в условии второго if переменная user2 не будет проверена.

Исправленный вариант:

bool UserProcessing()
{
  ....
  var user1 = FindUser(id1);

  if (user1 == null)
    return false;
  ....
  var user2 = FindUser(id2);

  if (user2 == null)
    return false;
  ....
}

Рассмотрим еще один случай:

private readonly int _value;
....
public CustomType(int value)
{
  ....
  _value = value < 0 ? 0 : value;

  if (value == 0) { .... }
  ....
}

Полю _value присваивается значение параметра value, ограниченное положительными значениями. Далее вместо валидного значения поля на равенство с 0 проверяется параметр, который все также может иметь отрицательное значение.

Исправленный вариант:

private readonly int _value;
....
public CustomType(int value)
{
  ....
  _value = value < 0 ? 0 : value;

  if (_value == 0) { .... }
  ....
}

Данная диагностика классифицируется как: