2012-07-25 72 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