変数の隠蔽

C#8.0以降では、ローカル関数下のローカル変数が許容されるようになりした
次の例では、C#7.x以前ではエラーになりますが、C#8.0以降ではエラーになりません

サンプルコード

.NET6のtトップレベルステートメントで作成しています
なので、Mainメソッド内のコードとしてみてください

var msg = "ローカル変数";

void LocalMethod()
{
    var msg = "内部変数";
    Console.WriteLine(msg);
}

LocalMethod();
Console.WriteLine(msg);

結果

内部変数
ローカル変数

C#

Posted by hidepon