私は、メソッド/関数のオーバーライドが、派生クラスの実装をベースクラスの実装から再定義することを理解しています。ASP.NET用のC#でメソッドをオーバーライドするときに基本クラスの実装を呼び出す必要がありますか?
今何、私を混乱させる私はASP.NETなどCreateChildControls()
内のクラスをオーバーライドする場合で、VS2008の自動生成(私は特別な理由のために、ランダムに選んだ):十分な
protected override void CreateChildControls()
{
base.CreateChildControls();
}
良い、デフォルトの実装基本クラス 'CreateChildControls()
'を呼び出します。だから、
私は私がどのようにbase.CreateChildControls()
知らないために、いくつかのコードを実行したい場合は、私はこれを行う必要があります。
protected override void CreateChildControls()
{
/*My Code Here*/
base.CreateChildControls();
}
や、base.CreateChildControls()
は完全に、ちょうど
protected override void CreateChildControls()
{
/*My Code Here*/
}
私が本当に驚いているのは、あなたが非公開の基本クラスを上書きすることが許されるということです。 – Matt
私はその自由を持たなければなりません。私があなたの子供だからといって、私があなたのようにすべてをやりたいのではありません。時々、私は世界に出て自分のやり方でやる必要があります。私があなたの実装を強制された場合、あなたは保護過剰な親になるでしょう。 :) –
私のカスタム 'Control'でオーバーライドするときに基本クラスを呼び出すという事実から、' OnXxxx'オーバーライドに関して、私は一般に、派生メソッドの最後に 'base.OnXxxx'を呼び出しました。派生したメソッドの最初または最後に 'base.CreateChildControls'を呼び出すかどうかについての経験則はありますか? – superjos