";多重继承“-派生基类的方法
本文关键字:派生 基类 方法 quot 多重继承 | 更新日期: 2023-09-27 17:58:24
摘要
在VB.NET(.NET 4.0)中,是否可以派生ListControl
并对RadioButtonList
、CheckBoxList
、DropDownList
使用相同的方法?
编辑:我添加了C#标记,希望C#有一个也可以与VB.NET一起使用的解决方案。如果不是这样,我将删除标记以避免混淆
详细信息
使用这个非常有用的答案,我编写了一个类(从DropDownList
派生而来),允许我在post-back中持久化单个.Item
对象的属性。
我想将此功能扩展到RadioButtonList
和CheckBoxList
控件,但我不知道这是否可行,如果可行,如何实现
这在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/