重複の可能性:
C# 変数のスコープ
次のコードを検討してください。
void f()
{
if (condition)
{
B b = createB();
}
...
B b = getB();
}
変数 b が子スコープで既に定義されているというエラーが表示されます。どうしてこれなの?最初の定義は、外側のスコープからは見えないネストされたスコープで発生します。外側のスコープで以前に宣言された変数にアクセスすることさえできません。では、この場合、コンパイラは何をしているのでしょうか?