OnLoad比Page_を書き換えるLoad()はい


まず2つのコードを見てみましょう
1つ目はよく知っているPageですLoad()メソッド.実はこれはEventHandlerで、再システムを定義します.Web.UI.PageのLoadイベントがトリガーされると、実行が開始されます.
// use event handler
protected void Page_Load(object sender, EventArgs e)

{
//

}

これはシステムです.Web.UI.PageクラスのOnLoad()メソッドのOverride.//use override
protected override void OnLoad(EventArgs e){base.OnLoad(e);}
上記の2つの方法は同じ機能を果たすことができますが、Overrideの方法をお勧めします.
まず,イベント処理メカニズムは,独立したオブジェクト間の通信を実現するために用いられる.例えば、1つのButtonがクリックされると、ページはイベント処理機構によってこのメッセージを知り、処理することができる.しかし、この例では、LoadイベントはSystemで定義.Web.UI.Pageでは、自身も私たちのページの一部です.このように1つのクラスの内部でイベントを発行し、それ自体でこのイベントを処理する方法は奇妙に見えます.
次に,効率的に考えると,イベント処理はOverrideに及ばない.これは.NET Frameworkの実装が決定し、私たちはすでに知っています.
また、イベントを使用する場合は、イベント処理方法のロード(attach)とイベント処理関数自体の定義の2つの場所を維持する必要があります.ASP.NET 2.0はすでにいくつかの事前定義のイベント処理方法名を提供しているが、多くの開発者がASP.を使用している.NET 1.1.一方、Overrideを使用するには、Override関数自体を維持する必要があります.
もちろん、イベント処理メカニズムには、実行時にイベント処理方法を容易に指定でき、各所に分散した複数のイベント処理方法を順次実行できるなどのメリットがあります.ただしASP.NETページではこれらの特性は使用されません.ページがロードされる動作を定義する方法があります.Page_も複数ありません.Load()メソッドが1ページに表示されます.
ASPだけでなくNETページでは、他の場合もEventではなくOverrideをできるだけ使うべきです.Overrideを使用する場合は、ベースクラスを呼び出す方法を忘れないように注意してください(Visual Studioが作ってくれます).