0

私は誰かのコードを見ていて、持っています:

protected override void OnMouseEnter(MouseEventArgs e)
{
    base.OnMouseEnter(e);  //necessary?
    if (...)
}

さて、質問はなぜ基本クラスのメソッドが呼び出されるのかということです。このコードはとにかくそれなしで動作します。何か案が?

ありがとう。アミット

4

4 に答える 4

3

基本呼び出しは、基本の実装の機能を利用したいが、派生クラスの実装で何が起こるかを拡張したい場合に使用されます。

これにより、基本クラスで定義されたプロパティを設定したり、各派生クラスにボイラープレート コードを配置することなくイベントを処理したりするなど、非常に便利なことを行うことができます。

于 2012-08-10T00:34:11.660 に答える
2

基本クラスのメソッドにはデフォルトの動作があり、それを利用したい場合があります。

于 2012-08-10T00:33:25.520 に答える
1

基本クラスによっては、意図したとおりに機能させるために、そのメソッドも実行する必要がある場合があります。特にそれが何をするかわからない場合は、基本コードを呼び出すことはかなり慣例であり、重要かもしれません。

于 2012-08-10T00:34:39.680 に答える
1

イベントハンドラーが何をするかによって大きく異なります。基本クラスが複雑で、OnMouseEnter()保持したい多くのことを行う場合は、そのbase.OnMouseEnter(e)呼び出しが必要です。関数を完全に「オーバーライド」したい場合、つまり、何が機能するかを知ってbase.OnMouseEnter(e)いて、それを望まない場合は、 を呼び出さないでくださいbase.OnMouseEnter(e)

于 2012-08-10T00:35:11.960 に答える