Ich verstehe, dass das Überschreiben einer Methode/Funktion ihre Implementierung in der abgeleiteten Klasse von ihrer Implementierung in der Basisklasse neu definiert.Soll ich die Basisklassenimplementierung beim Überschreiben einer Methode in C# für ASP.NET aufrufen?
Nun, was mich verwirrt, ist, wenn ich eine Klasse in ASP.NET außer Kraft setzen, wie CreateChildControls()
(ich es zufällig ohne besonderen Grund gepflückt), VS2008 Auto erzeugt:
protected override void CreateChildControls()
{
base.CreateChildControls();
}
Genügend, die Umsetzung Standard ruft nur die Basisklasse CreateChildControls()
auf.
Also, wenn ich einige Code ausgeführt werden soll, da ich weiß nicht, wie base.CreateChildControls()
, sollte ich dies tun:
protected override void CreateChildControls()
{
/*My Code Here*/
base.CreateChildControls();
}
oder, ignorieren, was base.CreateChildControls()
zusammen und tun nur
protected override void CreateChildControls()
{
/*My Code Here*/
}
Es ist wirklich überraschend für mich, dass Sie eine Basisklasse überschreiben dürfen, die Sie nicht kennen. – Matt
Ich muss diese Freiheit haben. Nur weil ich dein Kind bin, heißt das nicht, dass ich alles so machen will wie du. Manchmal muss ich in die Welt gehen und Dinge auf meine eigene Art tun. Sie wären ein überfürsorglicher Elternteil, wenn Sie mich zu Ihrer Implementierung zwingen würden. :) –
Ausgehend von der Tatsache, dass ich die Basisklasse beim Überschreiben in meiner benutzerdefinierten 'Control' aufrufen, in Bezug auf' OnXxxx' überschreibt ich am Ende meiner abgeleiteten Methode, dass ich 'base.OnXxxx' nenne. Gibt es eine Faustregel, ob 'base.CreateChildControls' am Anfang oder am Ende der abgeleiteten Methode aufgerufen wird? – superjos