Это работает:
class MyClass
{
int a;
public MyClass()
{
int b = a;
}
}
Но это дает ошибку компилятора ( "Использование неназначенной локальной переменной" a "):
class MyClass
{
public MyClass()
{
int a;
int b = a;
}
}
Насколько я могу это сказать, это происходит потому, что в первом примере технически компилятор не знает, что "a" не назначен. В последнем примере "a" определяется локально и поэтому легко отслеживается.
Но почему последний пример не работает?
Не целые значения по умолчанию равны 0? Это что-то, что компилятор обеспечивает для "лучших практик". Или есть еще одна причина?