";多重继承“-派生基类的方法

本文关键字:派生 基类 方法 quot 多重继承 | 更新日期: 2023-09-27 17:58:24

摘要

在VB.NET(.NET 4.0)中,是否可以派生ListControl并对RadioButtonListCheckBoxListDropDownList使用相同的方法?

编辑:我添加了C#标记,希望C#有一个也可以与VB.NET一起使用的解决方案。如果不是这样,我将删除标记以避免混淆

详细信息

使用这个非常有用的答案,我编写了一个类(从DropDownList派生而来),允许我在post-back中持久化单个.Item对象的属性。

我想将此功能扩展到RadioButtonListCheckBoxList控件,但我不知道这是否可行,如果可行,如何实现

这在C++中是相当直接的,因为它具有多重继承的能力,但我被困在这里了。

显而易见的解决方案是复制DropDownList派生的类,但我更希望代码不重复3次。

有人能给我指正确的方向吗,因为我在这里真的很想放屁?


这大致就是我已经为派生的DropDownList控件所做的,它非常完美。。。

<ToolboxData("<{0}:DropDownListPersistant runat=""server""></{0}:DropDownListPersistant>"), DefaultProperty("Text")> _
Public Class DropDownListPersistant
  Inherits DropDownList
  Protected Overrides Function SaveViewState() As Object
    ...
  End Function
  Protected Overrides Sub LoadViewState(ByVal savedState As Object)
    ...
  End Sub
End Class

这是我尝试过的,但它确实有效,因为显然DropDownListPersistant不再是从DropDownList派生的。。。

Public Class ListControlPersistant
  Inherits ListControl
  Protected Overrides Function SaveViewState() As Object
    ...
  End Function
  Protected Overrides Sub LoadViewState(ByVal savedState As Object)
    ...
  End Sub
End Class
<ToolboxData("<{0}:DropDownListPersistant runat=""server""></{0}:DropDownListPersistant>"), DefaultProperty("Text")> _
Public Class DropDownListPersistant
  Inherits ListControlPersistant
End Class

";多重继承“-派生基类的方法

尝试使用扩展方法。我认为您可以使用下面这样的扩展方法来模拟多重继承。

http://coding.abel.nu/2012/05/emulating-multiple-inheritance-with-extension-methods/