昨天Insus.NET有寫了一篇《asp.net的簡單與面向對象開發》http://m.survivalescaperooms.com/insus/p/4146503.html。以當時的想法,只能如此的水準,有網友說應該是使用狀態設計模式,但Insus.NET想到這個案例沒有使用到狀態的設計模式。反而想到開關有兩個事件,就是開與關。下面Insus.NET決定重構這個Switch類,改用委托來實現。一個普通的電源開關,是讓我們開做什么,關做什么,它雖有內置功能實現,正常來說也應該有外置功能。前一篇中,是靠關開的屬性來獲取輸出參數,使用事件委托之后,是靠兩個事件開與關來獲取參數。
因此創建一個RunEventArgs類,它繼承了EventArgs基類。
Ok,現在我們去重構Switch類:

用紅線刪除無用代碼,分別添加標記1至3部分代碼。標記1就是宣街告一個委托delegate和兩個事件Event。標記2和標記3分別在兩個事件傳出參數。
接下來重構Default2.aspx.cs,需要在這里實現Switch類中兩個事件:
在實現兩個事件,獲取開關輸出的參數:

本重構中,我們學習到使用委托,e傳遞參數。責任分清,是屬性是事件。
下面是asp.net事件與委托相關:《用戶控件(UserControl) 使用事件》http://m.survivalescaperooms.com/insus/archive/2011/11/16/2251314.html《事件接口》http://m.survivalescaperooms.com/insus/archive/2011/12/12/2284382.html《網頁(aspx)與用戶控件(ascx)交互與邏輯處理》http://m.survivalescaperooms.com/insus/archive/2013/03/09/2951161.html《觀察者模式與用戶控件之間的互動》http://m.survivalescaperooms.com/insus/archive/2011/12/10/2283142.html
新聞熱點
疑難解答