Анализатор обнаружил потенциальную ошибку, связанную с тем, что пропущена инициализация переменной или свойства.
Рассмотрим это на примере:
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;