【发布时间】:2012-01-16 22:18:36
【问题描述】:
是否可以从 VB.net 中的两个类继承?
我们正在开发继承自 System.Web.UI.WebControls.Label 的自定义用户控件。我们正计划实施一系列此类控件,但它们将共享大部分相同的其他属性。我们希望集中这些属性。
我研究过接口,但似乎它们只是您需要实现的“合同”属性。
想法?
【问题讨论】:
标签: vb.net custom-controls multiple-inheritance
是否可以从 VB.net 中的两个类继承?
我们正在开发继承自 System.Web.UI.WebControls.Label 的自定义用户控件。我们正计划实施一系列此类控件,但它们将共享大部分相同的其他属性。我们希望集中这些属性。
我研究过接口,但似乎它们只是您需要实现的“合同”属性。
想法?
【问题讨论】:
标签: vb.net custom-controls multiple-inheritance
没有。 VB.net 类型不能继承多个类。可以实现无限数量的接口,但继承仅限于一种类型。
注意:这不是任意的 VB.Net 限制。这实际上是一个嵌入到 CLR 中的限制。像 C++/CLI 这样的语言通过一些非常有趣的类型展平例程来解决这个问题,但在 CLR 级别它们使用单继承。
【讨论】:
不,你不能从两个类继承。
但是,我们遇到了与您完全相同的问题,并通过以下方式解决了它:
1) 我们创建了一个由每个控件实现的界面,以便可以轻松发现它们。
2) 我们创建了一个设置类,其中包含所有类通用的设置和逻辑。
3) 我们在 1 中创建的接口中添加了一个属性来公开设置类,以便我们可以对所有属性执行标准操作。
【讨论】: