2013-05-03 75 views
2

利用該:訪問隱藏的共享/靜態變量

class outer 
    public shared X as string = "" 
    class inner 
     public shared sub test() 
     Dim s as string 
     s = X ' refers to the shared (static) variable in outer 
     end sub 
    end class 
    end class 

在試驗方法的參考X是在外部類中聲明的共享變量,但是,如果我的內部類由該名稱所聲明的變量(將外部類中的共享變量切掉),我如何才能訪問它?

class outer 
    public shared X as string = "" 
    class inner 
     public X as string = "x" 
     public shared sub test() 
     Dim s as string 
     s = X ' this fails because it's an attempt to access an instance variable 
     end sub 
    end class 
    end class 
+0

內部類具有比其訪問私處沒有特殊關係外,其他。它將需要對外部對象的引用。 – 2013-05-04 00:09:41

回答

1

嘗試指定外部類的名字,像這樣:

Class outer 
    Public Shared X As String = "bar" 

    Class inner 
     Public X As String = "foo" 
     Public Shared Sub test() 
      Dim s As String = X    ' foo 
      Dim t As String = outer.X  ' bar 
     End Sub 
    End Class 
End Class 
+0

我曾試過,但似乎無法得到正確的語法。編譯器會抱怨:「錯誤:'外部'沒有聲明。它可能無法訪問,由於其保護級別」但我不明白爲什麼... – ekkis 2013-05-03 23:27:05

+0

@ekkis我剛試過它,並能夠得到它的工作沒有任何問題。也許'outer'需要是公開的。 – 2013-05-03 23:35:07