컴파일러 오류 CS0844
'name' 지역 변수는 선언되지 않으면 사용할 수 없습니다. 지역 변수를 선언하면 'name' 필드가 숨겨집니다.
식별자는 지정된 블록에서 하나의 의미만 가질 수 있습니다. 클래스 필드와 이름이 같은 지역 변수는 식별자에 대한 두 번째 의미를 도입하여 필드를 숨길 수 있습니다. 따라서 메서드에서 클래스 필드를 참조한 다음 같은 이름으로 지역 변수를 선언하는 경우 컴파일러에서 오류가 발생합니다.
this.num
를 사용하여 클래스 필드를 참조합니다.지역 변수에 클래스 필드와 다른 이름을 지정합니다.
다음 코드에서는 CS0844를 생성합니다.
class Test
{
int num;
public void TestMethod()
{
num = 5; // CS0844
int num = 6;
}
public static int Main()
{
return 1;
}
}
class Test
{
int num;
public void TestMethod()
{
this.num = 5; // Error fixed.
int num = 6;
}
public static int Main()
{
return 1;
}
}
class Test
{
int num;
public void TestMethod()
{
num = 5; // Error fixed.
int num2 = 6;
}
public static int Main()
{
return 1;
}
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.