程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 在ASP.NET頁面中推薦使用覆寫(Override)而不是事件處理(Event Handl

在ASP.NET頁面中推薦使用覆寫(Override)而不是事件處理(Event Handl

編輯:.NET實例教程
     English Version: http://dflying.dflying.Net/1/archive/101_prefer_overrides_to_event_handlers_in_ASPnet_page.Html
  
  這個是我們熟悉的Page_Load()方法。實際上它是一個Event Handler,當定義在System.Web.UI.Page中的Load事件觸發時,它開始執行。
  
  // use event handler
  protected void Page_Load(object sender, EventArgs e)
  {
   // logic here
  }
  
  
  
  
  這個是System.Web.UI.Page類中OnLoad()方法的Override。 // use override
  protected override void OnLoad(EventArgs e)
  {
   // logic here
   base.OnLoad(e);
  }
  雖然上述兩種做法都能完成相同的功能,但是我推薦使用Override的做法。
  
  首先,事件處理機制是用來實現獨立的對象之間通信的。例如,當一個Button被點擊時,頁面可以通過事件處理機制得知這一消息並進行處理。但在這個例子中,Load事件定義在System.Web.UI.Page中,本身也是我們頁面中的一部分。這樣在一個類的內部發出事件並又在其本身處理這個事件的做法將顯得很奇怪。
  
  其次,效率上考慮,事件處理不及Override。這是由.Net Framework的實現所決定的並且我們都已經了解。
  
  還有,使用事件時需要維護兩個地方:事件處理方法的加載(attach)以及事件處理函數本身的定義。雖然ASP.NET 2.0已經提供了一些預定義的事件處理方法名,但還有好多開發者在使用ASP.Net 1.1。而使用Override則只需要維護Override函數本身。
  
  當然,事件處理機制有它自身的好處,比如可以很方便的在運行時指定事件處理方法,允許分布在各處的多個事件處理方法依次執行。但在ASP.Net頁面中我們不會用到這些特性。我們總會有一個方法來定義頁面被加載的行為,我們也不會有多個Page_Load()方法在一個頁面中出現。
  
  更加泛化一點,不單單在ASP.Net頁面中,其他情況下我們也應該盡可能的使用Override而不是Event。
  使用Override的時候需要注意的是不要忘記調用基類的方法(Visual Studio會替你做好的)。
  
  
  
  出處:Dflying Chen BLOG 
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved