我可能误解了 base.OnLoad(e);
的意思我的理解是这条语句将调用调用它的类的基类的 OnLoad 方法。但是,当我使用调试器逐步执行代码时,我看到了不同的结果。
public abstract class BaseUC : System.Web.UI.UserControl
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
SomeAbstractMethod();
}
}
在ascx.cs具体类中
public partial class MyUserControl : BaseUC
{
protected void Page_Load(object sender, EventArgs e)
{
//On Load logic
}
}
我在 base.OnLoad(e)
上有一个断点。当我按 F11(进入)时,调试器将我带到 MyUserControl 的 Page_Load
,因此控制流程是:
BaseUC.OnLoad()
MyUserControl.Page_Load()
BaseUC.SomeAbstractMethod()
谁能解释一下这是怎么回事?
最佳答案
- BaseUC.Onload 调用 Control.OnLoad 触发 Load 事件。
- Page_Load 方法因 AutoEventWireUp=True 而起作用,并在 Load 事件执行时执行。
- 然后 BaseUC 将继续执行,调用 SomeAbstractMethod。
关于c# - ASP.NET 页面中的 base.OnLoad(e),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1329090/