继承到基类命名空间

时间:2017-07-06 13:31:05

标签: .net vb.net inheritance

我有一个A类,它有一些受保护的成员,我希望我的基类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中是不明确的”。我做错了什么?

1 个答案:

答案 0 :(得分: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

我不建议这样做。框架内部很少有类,特别是公共类。但是,我只是互联网上一个随机的人:)

如果你真的想要命名空间,我会重命名类似CarBase的类A,并将其他类放在名为Car的名称空间中。