【问题标题】:VB.net Inherits 2 ClassesVB.net 继承 2 个类
【发布时间】:2012-01-16 22:18:36
【问题描述】:

是否可以从 VB.net 中的两个类继承?

我们正在开发继承自 System.Web.UI.WebControls.Label 的自定义用户控件。我们正计划实施一系列此类控件,但它们将共享大部分相同的其他属性。我们希望集中这些属性。

我研究过接口,但似乎它们只是您需要实现的“合同”属性。

想法?

【问题讨论】:

标签: vb.net custom-controls multiple-inheritance


【解决方案1】:

没有。 VB.net 类型不能继承多个类。可以实现无限数量的接口,但继承仅限于一种类型。

注意:这不是任意的 VB.Net 限制。这实际上是一个嵌入到 CLR 中的限制。像 C++/CLI 这样的语言通过一些非常有趣的类型展平例程来解决这个问题,但在 CLR 级别它们使用单​​继承。

【讨论】:

  • 感谢 JaredPar - 对我们实施这种情况的最佳方式有何建议?忘记集中化,只在每个中实现属性?
  • @timmah.faase 我会将通用功能放入单个类中,然后让用户只需拥有该类型的字段并使用相同的命名属性转发到字段类型。并可能为共享功能创建接口
【解决方案2】:

不,你不能从两个类继承。

但是,我们遇到了与您完全相同的问题,并通过以下方式解决了它:

1) 我们创建了一个由每个控件实现的界面,以便可以轻松发现它们。

2) 我们创建了一个设置类,其中包含所有类通用的设置和逻辑。

3) 我们在 1 中创建的接口中添加了一个属性来公开设置类,以便我们可以对所有属性执行标准操作。

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 2019-03-23
    • 2015-12-07
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    相关资源
    最近更新 更多