może ja źle zrozumieć sens base.OnLoad(e);
mojego zrozumienia, że to oświadczenie będzie wywołać metodę onload klasy bazowej klasy gdzie jest wywołana z. Jednak, gdy używam debuggera do przejrzenia kodu, widzę różne wyniki.base.OnLoad (e) na stronie ASP.NET
public abstract class BaseUC : System.Web.UI.UserControl
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
SomeAbstractMethod();
}
}
W ascx.cs betonu klasy
public partial class MyUserControl : BaseUC
{
protected void Page_Load(object sender, EventArgs e)
{
//On Load logic
}
}
Mam przerwania na base.OnLoad(e)
. Po naciśnięciu klawisza F11 (krok do), debugger zabiera mnie do Page_Load
z MyUserControl, więc przepływ kontroli jest:
BaseUC.OnLoad()
MyUserControl.Page_Load()
BaseUC.SomeAbstractMethod()
Może ktoś wyjaśnić, co tu się dzieje?
"BaseUC.Onload wzywa Control.OnLoad która wyzwala zdarzenie Load." która linia to robi? – DotnetDude
base.OnLoad (e) - kod podniesie wydarzenie. –
Sądzę, że to część, której nie rozumiem. Dlaczego baza.OnLoad (e) wywołuje Control.OnLoad (w tym przypadku MyUserControl.Page_Load() )? – DotnetDude