Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V3173. Possible incorrect initialization of variable. Consider verifying the initializer.

08 Июл 2021

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

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

class A
{
  int field1;
  string field2;
  string field3;
  ....
  public void foo(int value)
  {
    field1 = value;
    field2 =                    // <=
    field3 = GetInitialization(value);
  }
}

В данном примере разработчик отложил инициализацию поля 'field2' в надежде на то, что этот код не скомпилируется, и тем самым напомнит о пропущенной инициализации. Но в данном случае код будет успешно скомпилирован. Полю 'field2' будет присвоено значение поля 'field3'.

Похожая ситуация может возникнуть во время декларации, например:

int b, c;

int a = 
b = c = 2;

Этот код выглядит очень подозрительно. Непонятно чем хотели инициализировать переменную 'a'.

Анализатор не будет выдавать предупреждение в ряде случаев, когда понятно, что код написан подобным образом специально.

Например, есть отступы относительно первой строки:

var1 =
  var2 = 100;

Другой пример, если нет отступа, но подобным образом значение записывается в несколько переменных:

var1 =
var2 =
var3 =
var4 = 100;