2017-07-06 77 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)。 –