Share via


컴파일러 오류 CS0136

업데이트: 2007년 11월

오류 메시지

'var'(이)라는 지역 변수는 'var'에 다른 의미를 주기 때문에 이 범위에 선언할 수 없습니다. 이 변수는 이미 'parent or current/child' 범위에서 다른 의미를 나타내도록 사용되었습니다.
A local variable named 'var' cannot be declared in this scope because it would give a different meaning to 'var', which is already used in a 'parent or current/child' scope to denote something else

변수를 선언하면 해당 범위에서 다른 방식으로 존재하는 다른 선언을 숨깁니다. CS0136이 발생한 줄에 선언된 변수의 이름을 변경하십시오.

예제

다음 샘플에서는 CS0136 오류가 발생하는 경우를 보여 줍니다.

// CS0136.cs
namespace MyNamespace
{
   public class MyClass
   {
      public static void Main()
      {
         int i = 0;
         {
            char i = 'a';   // CS0136, hides int i
         }
         i++;
      }
   }
}

C# 언어 사양의 7.5.2.1 단원을 참조하십시오. 해당 내용은 다음과 같습니다.

식이나 선언자에 단순한 이름으로 식별자를 지정한 경우 해당 식별자 바로 바깥쪽의 지역 변수 선언 공간(§CNDJ6nn5us4RjIIAqgBLqQsCAAAACAAAAA4AAABfAFIAZQBmADQANgAxADYAMgAyADEAMwA4AAAA REF _Ref461622138 \r \h 3.3) 내의 식이나 선언자에 단순한 이름으로 동일한 식별자를 추가로 지정할 때에는 항상 동일한 엔터티를 참조해야 합니다. 이 규칙은 지정된 블록, 스위치 블록, for, foreach 또는 using 문, 익명 함수 내에서 이름의 의미가 항상 같도록 합니다.