2007-10-09 16:43
为什么想继承事件?
2007-10-09 17:03
2007-10-09 17:05
下面一段代码,目的是实现事件的继承:
基类:
public class BaseBusiness
{
//声明事件委托
public delegate void ProgressEventHandler(int progress, string msg);
//声明事件
public event ProgressEventHandler ProgressEvent;
protected virtual void OnProgress(int progress, string msg)
{
if (this.ProgressEvent != null)
this.ProgressEvent(progress, msg);
}
}
派生类:
public class MyBusiness : BaseBusiness
{
public MyBusiness()
{
// 可以直接调用基类的方法
this.OnProgress(this.OnProgressValue, "Testing...");
}
// 可以重写基类的方法
protected override void OnProgress(int progress, string msg)
{
// 在这里添加其他处理代码
base.OnProgress(progress, msg);
}
}
[此贴子已经被作者于2007-10-9 17:19:52编辑过]

2007-10-09 17:18
事件只能从声明它们的类中调用,派生类不能直接调用在基类声明的事件。
要处理基类的事件,通常通过在基类中为事件创建受保护虚方法(OnEventName)来实现。派生类可以重写基类的OnEventName方法,也可以直接调用基类的OnEventName方法,从而实现调用基类的事件。重写基类的OnEventName方法,派生类可以截获基类正在调用的事件,对这些事件执行它自己的处理。

2007-10-09 17:19
2007-10-09 18:15
委托
2007-10-09 18:25
2007-10-10 10:47