컴파일러 오류 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;
}
}