다음을 통해 공유


컴파일러 오류 CS0844

업데이트: 2007년 11월

오류 메시지

'name' 지역 변수는 선언되지 않으면 사용할 수 없습니다. 지역 변수를 선언하면 'name' 필드가 숨겨집니다.
Cannot use local variable 'name' before it is declared. The declaration of the local variable hides the field 'name'.

식별자는 특정 블록에서 의미를 하나만 가질 수 있습니다. 클래스 필드와 이름이 같은 지역 변수는 식별자에 두 번째 의미를 부여하여 필드를 숨길 수 있습니다. 따라서 메서드에서 클래스 필드를 참조한 후 이름이 같은 지역 변수를 선언하면 컴파일러에서 오류를 생성합니다.

이 오류를 해결하려면

  • this.num을 사용하여 클래스 필드를 참조합니다.

  • 클래스 필드와 다른 이름을 지역 변수에 지정합니다.

예제

다음 코드에서는 CS0844 오류가 발생하는 경우를 보여 줍니다.

class Test
    {
        int num;
        public void TestMethod()
        {
            num = 5; // CS0844
            int num = 6;        }
        public static int Main()
        {
            return 1;
        }
    }