base.OnLoad(e);
の意味が誤解されている可能性があります。このステートメントは、呼び出されたクラスの基本クラスのOnLoadメソッドを呼び出すことを理解しました。ただし、デバッガを使用してコードをステップ実行すると、結果が異なることがあります。ASP.NETページ内のOnLoad(e)
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はLoadイベントをトリガーするControl.OnLoadを呼び出します。"どのラインがこれを起こしているのですか? – DotnetDude
base.OnLoad(e) - そこのコードがイベントを発生させます。 –
私はそれが私が理解していない部分だと思います。なぜbase.OnLoad(e)はControl.OnLoad(この場合はMyUserControl.Page_Load() )を呼び出しますか? – DotnetDude