2017-07-06 83 views
0

我有一個類有,我想我的基地B類訪問一些受保護的成員。我也希望類B位於類A下的命名空間中。這可能嗎?繼承到的基類命名空間

Namespace BLL 
    Public Class A 
     Protected varA As Integer 
     Protected varB As String 
    End Class 
End Namespace 

Namespace BLL.A 
    Public Class B 
     Inherits A 
     Public Sub setA() 
     varA = 3 
     varB = "test" 
     End Sub 
    End Class 
End Namespace 

然後我希望能夠訪問B類,像這樣:

BLL.A.B.setA() 

當我這樣做,我得到一個錯誤「‘A’是在命名空間BLL曖昧」。我究竟做錯了什麼?

+0

這是最有可能不可能,也不推薦。請參閱:https://stackoverflow.com/a/18731452/3740093 –

回答

2

A不是一個命名空間,這是一類。您必須將B放入A級。

Namespace BLL 
    Public Class A 
     Protected varA As Integer 
     Protected varB As String 
    End Class 
End Namespace 

Namespace BLL 
    Partial Public Class A 
     Public Class B 
      Inherits A 
      Public Sub setA() 
       varA = 3 
       varB = "test" 
      End Sub 
     End Class 
    End Class 
End Namespace 

我不建議這樣做。框架很少在類內部有類,尤其是公共類。但是,我只是一個互聯網:)

如果你真的想要的命名空間,隨意的人,我會重新命名A級類似CarBase並把其他類的叫車的命名空間。

+0

感謝您的幫助。我想也許我需要重新考慮如何構建這個結構。我試圖完成的主要事情是具有A類是主要的類(汽車爲例),然後訪問所有它的子類像Car.Ford,Car.Chevy等爲組織目的 – OhlPatrol

+0

我會調用基類CarBase或做類似的類[HTMLLoader對象(https://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlcontrol(v = vs.110)的.aspx),這是命名空間HtmlControls內側(與一個s)。 –