중첩 루프의 C# 변수 범위 문제
일반적인 오류를 방지하려면 C#의 변수 범위를 이해하는 것이 중요합니다. 변수의 범위는 코드에서 변수에 액세스할 수 있는 위치를 나타냅니다. 잠재적인 범위 문제를 강조하는 두 가지 코드 예제를 살펴보겠습니다.
예 1:
<code class="language-csharp">public void MyMethod(){ int i=10; for(int x=10; x<20; x++){ int i = x; // Point 1: Error Console.WriteLine(i); } Console.WriteLine(i); // Point 2: Error }</code>
예 2:
<code class="language-csharp">public void MyMethod(){ for(int x=10; x<20; x++){ int i = x; object objX = new object(); Console.WriteLine(i); } for(int y=20; y<30; y++){ int i = y; object objX = new object(); Console.WriteLine(i); } }</code>
오류분석
예제 1에서 내부 루프가 i
을 다시 선언하고 동일한 범위 내에서 동일한 이름을 가진 새 변수를 생성하기 때문에 컴파일러는 지점 1에 플래그를 지정합니다. 이는 주어진 범위 내에서 고유한 변수 이름의 규칙을 위반합니다. 지점 2의 오류는 루프 범위 내에서 다른 i
가 선언된 루프 외부에서 i
에 액세스하려고 시도한 데서 발생합니다.
해상도
예제 2는 성공적으로 컴파일되었습니다. 두 개의 루프는 서로 다른 범위를 설정합니다. 각 루프의 i
및 objX
변수는 이름 충돌을 방지하기 위해 별도의 엔터티로 처리됩니다. 각 루프는 보이지 않는 중괄호로 묶인 것처럼 작동하여 자체 로컬 범위를 생성합니다.
핵심 요약
C#의 가변 범위 규칙은 지정된 범위 내에서 고유한 이름과 해당 범위 전체에서 동일한 엔터티에 대한 일관된 참조를 요구합니다. 특히 중첩 루프 내에서 이를 이해하면 예제 1에 설명된 범위 오류를 방지할 수 있습니다. 변수 선언과 범위를 주의 깊게 관리함으로써 개발자는 더욱 깔끔하고 오류 없는 C# 코드를 작성할 수 있습니다.
위 내용은 C#이 중첩 루프에서 변수 범위 오류를 보고하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!