어떻게 숨겨진 인스턴스 변수에 액세스 할 수 있습니까? (int gimmeValue = shinyNewBObject.a;)? 기본 키워드를 사용하여 인스턴스에 액세스 할 수 있다는 것을 알고 있습니다. 그러나 컴파일러는 shinyNewBObject의 객체 참조를 사용하여 정적 변수를 배제 할 것이라고 생각했습니다. a의 정적 버전을 제외하면 a의 인스턴스 버전은 숨김 상태가되어 액세스 할 수있게됩니다.기본 변수없이 숨겨진 인스턴스 변수에 액세스하기 기본 키워드없이
여기 무슨 일 이니? 컴파일러는 어셈블리의 모든 ID 목록을 만들고 인스턴스 변수가 정적이기 때문에 다른 인스턴스를 제외하기 전에 숨겨져 있기 때문에 인스턴스 변수를 제외 했습니까?
class A
{
public int a;
}
class B : A
{
new public static int a;
public void m()
{
B shinyNewBObject = new B();
int gimmeValue = shinyNewBObject.a; //Error
gimmeValue = base.a;
}
}
인스턴스 변수는 정적 일 수 없습니다. –
@AkashKava, 형식이 잘못되었지만 문제의 인스턴스 필드는 'A'에 있습니다. –
가난한 서식에 대해 미안하다. 사이트가 그랬다고 생각한다. – greenonion