【发布时间】:2016-03-02 17:51:34
【问题描述】:
我有一个UserControl。
我希望每个 UserControl 覆盖一个抽象方法。
这是我的抽象类:
public class MyAbstract
{
public virtual void LoadData()
{
}
}
这是我的用户控件,我最近尝试让它工作:
public partial class ucAbstract : UserControl, MyAbstract
{
public ucAbstract()
{
InitializeComponent();
}
public override void LoadData()
{
base.Load();
{
}
}
}
错误是:
“ucAbstract”类不能有多个基类:“UserControl”和“MyAbstract”
我该怎么做?
附加: 我可能需要删除这个添加并创建一个新问题。
这就是我想要达到的目标:
我的主表单包含 2 个UserControls: ucOne, ucTwo
这两个控件都有一个名为“LoadData”的方法。
我的主窗体中有一个函数:
void LoadControl(iuserControl myUserControl)
{
myUserControl.LoadData();
}
【问题讨论】:
-
MyAbstract 需要继承
UserControl。在 C# 中不能同时继承多个类。您必须以分层方式链接继承。抱歉,如果有更好的术语可以使用。 -
C#没有多重继承
-
MyAbstractisn'tabstract,而您的ucAbstract类正在尝试从两个基类继承,这在 C# 中是不可能的。跨度> -
@TyCobb 谢谢。我明白你的意思
-
虚拟和抽象不是同一个意思。
abstract类是不能直接实例化的类,可能有abstract成员。任何派生自abstract类的类必须 覆盖其基类的任何abstract成员。具体类可以有virtual成员,继承类可以可选地覆盖。
标签: c# wpf user-controls overriding