【问题标题】:Inheriting into Base Class Namespace继承基类命名空间
【发布时间】:2017-12-10 13:12:15
【问题描述】:

我有一个 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 中不明确”。我做错了什么?

【问题讨论】:

标签: .net vb.net inheritance


【解决方案1】:

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 之类的名称,并将其他类放在名为 Car 的命名空间中。

【讨论】:

  • 感谢您的帮助。我想也许我需要重新考虑我想如何构建它。我想要完成的主要事情是让 A 类成为主类(例如 Car),然后出于组织目的访问它的所有子类,如 Car.Ford、Car.Chevy 等
  • 我会调用基类 CarBase 或像类 HtmlControl 一样,它位于命名空间 HtmlControls(带有 s)内。
猜你喜欢
  • 2013-03-10
  • 1970-01-01
  • 2013-08-13
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
  • 2011-05-29
  • 2013-12-30
相关资源
最近更新 更多