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

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

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

    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;