国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 17:18:49
字體:
來源:轉載
供稿:網友

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒙城县| 巩义市| 永宁县| 岗巴县| 鹿泉市| 武邑县| 香格里拉县| 邵阳县| 大庆市| 普宁市| 辽阳市| 龙山县| 万全县| 通辽市| 调兵山市| 三河市| 五台县| 泾川县| 琼结县| 长寿区| 亳州市| 自贡市| 宜川县| 长沙县| 苏州市| 瑞丽市| 连江县| 阳江市| 大埔区| 馆陶县| 宜春市| 广安市| 同仁县| 望都县| 东乡县| 庄浪县| 曲阳县| 即墨市| 吉水县| 舞钢市| 定安县|