我有Capture类如下: -
namespace FrontEnd
{
public partial class Capture : Window, DPFP.Capture.EventHandler
{
public Capture()
{
InitializeComponent();
}
protected virtual void init()
{
try
{
if (null != cap)
cap.EventHandler = this;
else
SetPrompt("Cannot Use the Device right now");
}
catch { MessageBox.Show("Cannot Use the Device right now"); }
}
}
}
我的入学课程如下: -
namespace FrontEnd
{
public partial class Enrollment : Capture
{
protected override void init()
{
base.Init();
Enroller = new DPFP.Processing.Enrollment();
UpdateStatus();
}
}
}
我在Enrollment.cs中遇到三个错误:
1 - “注册”的部分声明不得指定不同的基类。
2 - 'Enrollment.init()':找不到合适的方法来覆盖。
3 - 当前上下文中不存在名称“UpdateStatus”。
我不知道问题到底在哪里。也许是在继承中。此外,我正在使用WPF,所以我可能也应该更改xaml代码以便进行继承。
请帮助解决这些错误。
答案 0 :(得分:1)
1 - “注册”的部分声明不得指定不同的基类。
我对这个案例的第一个猜测是,你有另一个类也是部分的,并且派生自与Capture不同的类。
2 - 'Enrollment.init()':找不到合适的方法来覆盖。
这里的问题是,基类Capture,Window和Eventhandler没有定义init()方法,所以你不能覆盖它。如果你从init方法中删除覆盖,你应该好好去。
可能这个问题很简单。在此方法中,您调用Init()方法,覆盖是小写init
3 - 当前上下文中不存在名称“UpdateStatus”。
与2中相同的问题。基类中没有UpdateStatus。
我也认为,从多个类派生这个问题就像java一样,c#不支持多重继承。
答案 1 :(得分:0)
您的代码中的其他位置还有另一个名为FrontEnd.Enrollment的类。这将来自Capture之外的其他东西。这导致错误1。
因为编译器无法判断正确的基类是什么,所以无法解析该类的任何成员。这导致错误2& 3
所以纠正多个基类的问题,你会没事的。
答案 2 :(得分:0)
我很确定像JAVA一样,C#中也不允许多重继承。对于Capture类,您将继承两个类。
public partial class Capture : Window, DPFP.Capture.EventHandler
可以解决这个问题。您可以使用多级继承。这将解决问题。