Rozumiem, że nadpisanie metody/funkcji przedefiniowuje jej implementację w klasie pochodnej od jej implementacji w klasie bazowej.Czy powinienem wywoływać implementację klasy podstawowej podczas przesłonięcia metody w języku C# dla ASP.NET?
Teraz co mnie niepokoi, to czy mogę nadpisać klasę w ASP.NET, takich jak CreateChildControls()
(Podniosłem go losowo bez powodu), auto generuje VS2008:
protected override void CreateChildControls()
{
base.CreateChildControls();
}
wystarczająco dobry, domyślna implementacja po prostu wywołuje klasę podstawową "CreateChildControls()
.
Więc jeśli chcę uruchomić jakiś kod, ponieważ nie wiem jak base.CreateChildControls()
, należy zrobić to:
protected override void CreateChildControls()
{
/*My Code Here*/
base.CreateChildControls();
}
lub zignorować co base.CreateChildControls()
całkowicie i po prostu zrobić
protected override void CreateChildControls()
{
/*My Code Here*/
}
To naprawdę zaskakujące, że możesz pominąć klasę podstawową, której nie znasz. – Matt
Muszę mieć tę wolność. To, że jestem twoim dzieckiem, nie oznacza, że chcę robić wszystko tak, jak ty. Czasami muszę wyjść na świat i robić rzeczy po swojemu. Byłbyś nadopiekuńczym rodzicem, gdybyś zmusił mnie do wdrożenia. :) –
Począwszy od tego, że wywołuję klasę podstawową podczas przesuwania w moim niestandardowym 'Kontroli', w odniesieniu do nadpisań' OnXxxx' zwykle otrzymuję to, co nazywam 'base.OnXxxx' na końcu mojej metody pochodnej. Czy istnieje jakaś reguła, czy wywołać metodę 'base.CreateChildControls' na początku lub na końcu metody pochodnej? – superjos