当我从父类重写事件时,例如System.Web.UI.Page中的OnLoad()方法,为什么仍然调用“base.OnLoad(e)”,但即使我删除了对在基类中重写的方法,仍然会触发Load事件?
public partial class _Default : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
}
答案 0 :(得分:2)
对base.OnLoad(e)的调用确保除了覆盖该方法的代码之外,还调用方法的基本实现中的所有内容(而不是仅执行重写方法中的代码)。
在任何一种情况下,它都应该与成功解雇的事件无关。
答案 1 :(得分:0)
您的代码行protected override void OnLoad(EventArgs e)
未覆盖事件,因为OnLoad
不是事件。它覆盖了System.Web.UI.Control
上定义的方法,System.Web.UI.Page
继承了该方法,MSDN表示会引发Load
事件。
如果您OnLoad
调用base.OnLoad(e)
的实施,您会发现Load
事件已被提出。
如果您OnLoad
的实施没有调用base.OnLoad
,您会发现Load
事件未被提升。
您几乎肯定想确保拨打base.OnLoad
。