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