これは機能します:
class MyClass
{
int a;
public MyClass()
{
int b = a;
}
}
しかし、これはコンパイラ エラー (「割り当てられていないローカル変数 'a' の使用」) を与えます。
class MyClass
{
public MyClass()
{
int a;
int b = a;
}
}
私が知る限り、これが発生するのは、最初の例では、技術的には、コンパイラが「a」が割り当てられていないことを認識していないためです。後者の例では、'a' はローカルで定義されているため、簡単に追跡できます。
しかし、後者の例が機能しないのはなぜでしょうか?
整数のデフォルトは 0 ではありませんか? これは、コンパイラが「ベストプラクティス」のために強制するものですか? それとも別の理由がありますか?