2012-07-25 70 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,因爲在Inner編譯的時候Outer還不存在,當然,在一個簡單的引用中,引用的字段將是Inner中定義的那個......所以我要這樣做嗎?

回答

0

重新讀你的問題後,我已經刪除了我以前的答案。

我只是測試下面的類中VS2010:

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 

我然後加入下面的代碼來測試:

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

當我執行此代碼,「1」被印刷在立即窗口。

+0

如果我要將Inner.Index聲明爲Shared,那麼它就成了一個簡單的陰影問題,所以我的問題基本上是:我如何克服陰影?大多數語言提供了一些機制來引用外部環境... – ekkis 2012-07-25 20:56:15

+0

對不起,重新閱讀您的消息。我錯過了最初的共享索引,而是專注於內部索引。請看我修改後的答案。 – 2012-07-25 22:04:01