2012-07-25 3 views
0

우리를 생각 중첩 된 클래스의 속성이 :이 파생되지 있기 때문에액세스 공통 부모 필드/

Class Outer 
    Public Shared Index As Integer 
    Class Inner 
     Private Index As Integer 
     Public Shared Sub Test() 
     ' how do I refer to the parent's Index? 
     End Sub 
    End Class 
End Class 

그때 MyBase을 사용할 수 없습니다 나는 시험 때문에 내부의 생성자에 부모의 인스턴스를 전달할 수 없습니다 공유됩니다 ... 나는 또한 Outer.Index로 참조 할 수 없습니다. 왜냐하면 내부가 컴파일 될 때 내부가 아직 존재하지 않기 때문입니다. 물론 참조 된 필드는 내부에서 정의 된 것이기 때문에 간단한 참조에서 그렇게됩니다. 나는 그것을합니까?

답변

0

질문을 다시 읽은 후 이전 대답을 삭제했습니다. 이 코드를 실행하면

Outer.Index = 1 
    Outer.Inner.Test() 

, "1"직접 인쇄됩니다 :

Class Outer 
    Public Shared Index As Integer 
    Class Inner 
     Private Index As Integer 
     Public Shared Sub Test() 
      Debug.WriteLine(Outer.Index) 
     End Sub 
    End Class 
End Class 

내가 다음 테스트에 다음 코드를 추가 :

난 그냥 VS2010에서 다음 클래스를 테스트 창문.

+0

Inner.Index를 Shared로 선언하면 간단한 그림자 문제가되므로 기본적으로 그림자를 극복 할 수 있습니까? 대부분의 언어는 외부 컨텍스트를 참조하는 몇 가지 메커니즘을 제공합니다. – ekkis

+0

죄송합니다. 메시지를 다시 읽으십시오. 원래 공유 색인을 놓친 대신 내부 색인에 초점을 맞추 었습니다. 제 수정 된 답변을 참조하십시오. –