OnLoad
メソッドとLoad
イベントの違いは何ですか?私はWinFormコントロールを開発しています。 Load
イベントに登録するか、OnLoad
メソッドを上書きする必要がありますか?それぞれのメリットとデメリットは何ですか?OnLoadメソッドとLoadイベントの違いは?
答えて
OnLoad
を無効にすると、イベントハンドラを呼び出すためのCPUサイクルが不要になります。
一般的なパターンは、コントロールから継承した場合、メソッドをオーバーライドすることです。それ以外の場合は、イベントを購読します。
ただし、Load
イベントが呼び出されたので、基本クラスの 'OnLoad
メソッドを呼び出すことを忘れないでください。
OnLoadは、Loadイベントを処理するためにVB.NETで使用されるデフォルトのイベントハンドラです。私は通常、ロードイベントにコードをアタッチする必要があるときにこのメソッドをオーバーライドします。他のPage Life Cycleイベントのデフォルト関数は、OnPreRender、OnInitなどです。
おっと...あなたはwinformについて質問していたことが分かりました。ページのライフサイクルリンクを無視する。しかし、同じことが適用されます。 – regex
また、C#のような他の.NET言語でも同じです(.NETフレームワーク自体は主にC#でコード化されています)。 –
OnLoadメソッドは、Loadイベントを発生させるメソッドです。これはフレームワーククラスの標準パターンであり、一般的に推奨されるパターンです。イベントFoo
の場合、そのイベントを発生させる仮想保護されたメソッドOnFoo
があります。クラスの他のメソッドは直接イベントを発生させませんが、常にOnFoo
を呼び出します。
this
でイベントを処理する必要がある場合は、通常はOnFoo
を上書きする方が簡単で高速です。
Microsoftによると、OnLoadメソッドをオーバーロードすることは、**派生**クラスのイベントを処理するための好ましいテクニックです(http://msdn.microsoft.com/en-us/library/system.windowsを参照)。 .forms.form.onload.aspx) –
@TroyMoonトーマスが言ったことではありませんか? –