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

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:11:20
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东台市| 交城县| 临西县| 宜黄县| 固阳县| 上思县| 湄潭县| 洛阳市| 囊谦县| 石阡县| 玛多县| 巫溪县| 霍林郭勒市| 邢台县| 昌江| 霸州市| 安溪县| 江门市| 全南县| 刚察县| 顺平县| 河池市| 阿尔山市| 寿阳县| 泽普县| 古田县| 济源市| 灵台县| 民乐县| 三河市| 上林县| 昭平县| 连平县| 泸州市| 耒阳市| 浠水县| 沿河| 贡嘎县| 威信县| 五莲县| 乾安县|