C# の変数スコープの曖昧さ
C# の変数スコープは、特定の言語ルールにより混乱を招く可能性があります。問題を理解するために 2 つのコード例を詳しく見てみましょう:
コード例 1 (コンパイルエラー):
<code class="language-c#">public void MyMethod(){ int i = 10; for(int x = 10; x < 20; x++){ int i = x; // 编译错误:在此作用域内重复声明变量 'i' object objX = new object(); // 编译错误:在此作用域内重复声明变量 'objX' object objX = new object(); } }</code>
エラーの理由:
コード例 2 (正常にコンパイルされました):
<code class="language-c#">public void MyMethod(){ for(int x = 10; x < 20; x++){ int i = x; object objX = new object(); } for(int x = 10; x < 20; x++){ int i = x; object objX = new object(); } }</code>
コンパイルが成功した理由:
コード例 2 では、ループの「暗黙の中括弧」ルールにより、ループ反復ごとに個別のスコープが作成されます。これは次のことを意味します:
これら 2 つのコード例は、C# における変数スコープの微妙な影響と、それが正しく理解されていない場合に生じる可能性のある混乱を示しています。
以上が変数のスコープは C# のコンパイルにどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。