> 백엔드 개발 > C++ > 변수 범위가 C#의 컴파일에 어떤 영향을 미치나요?

변수 범위가 C#의 컴파일에 어떤 영향을 미치나요?

DDD
풀어 주다: 2025-01-12 14:09:44
원래의
571명이 탐색했습니다.

How Does Variable Scope Affect Compilation in C#?

C# 변수 범위의 모호성

C#의 변수 범위는 특정 언어 규칙으로 인해 혼란스러울 수 있습니다. 문제를 이해하기 위해 두 가지 코드 예제를 살펴보겠습니다.

코드 예 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>
로그인 후 복사

오류 이유:

  • 포인트 1: 'i'라는 두 개의 지역 변수가 동일한 코드 블록(루프 본문) 내에 선언됩니다. C#에서는 동일한 범위에서 동일한 이름을 가진 중복 선언을 허용하지 않습니다.
  • 포인트 2: 'objX'라는 또 다른 지역 변수가 동일한 이름의 이전 변수와 동일한 범위에 선언되어 C#의 "식별 규칙"을 위반합니다. 이 규칙은 코드 블록 내에서 단순 이름이 항상 동일한 엔터티를 참조해야 함을 나타냅니다.

코드 예제 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에서 루프의 '암시적 중괄호' 규칙은 각 루프 반복에 대해 별도의 범위를 생성합니다. 이는 다음을 의미합니다.

  • 'i'라는 두 변수는 서로 다른 범위(루프의 서로 다른 반복)에서 선언되므로 중복 선언 오류가 발생하지 않습니다.
  • 'objX'라는 두 변수도 서로 다른 범위에서 선언되어 "식별 규칙"을 충족하므로 컴파일이 성공할 수 있습니다.

이 두 코드 예제는 C#에서 변수 범위의 미묘한 영향과 올바르게 이해하지 못할 경우 발생할 수 있는 혼란을 보여줍니다.

위 내용은 변수 범위가 C#의 컴파일에 어떤 영향을 미치나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿