對張子陽先生對委托和事件的兩篇文章的讀后思考(說得很透,內(nèi)附故事一篇)

 

第一篇 C#中的委托和事件

第二篇 C#中的委托和事件(續(xù)) 

首先,張子陽先生的這是兩篇關于委托和事件間關系的文章,是目前為止我讀過的介紹委托和事件以及異步調(diào)用最簡明清晰文章,作者通過非常有節(jié)奏的“標題”->“問題”->“思路”->“實現(xiàn)”->“講解”的結(jié)構,分步驟一步一步地將委托和事件的實現(xiàn)、應用與原理闡述得非常清楚,并且在行文期間將自己有趣的思考過程通過生動的語言表達了出來,使人讀起來越發(fā)的感興趣,以下就是我讀過這兩篇文章以后,對委托、事件、異步調(diào)用一些新的理解角度的闡述。

 (推薦的張子揚先生的文章鏈接在本文開始處,大家完全可以先不讀我的故事,先去看那兩篇文章,真的非常好玩)
 
     首先要引用作者文中的一個總結(jié)語:
委托是一個類,它定義了方法的類型,使得可以將方法當作另一個方法的參數(shù)來進行傳遞,這種將方法動態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用If-Else(Switch)語句,同時使得程序具有更好的可擴展性。
 
我覺得這句話可以從clr-via 設計的理念去闡述我的理解:
委托這個概念存在的作用就是實現(xiàn)了觀察者模式,并在封裝時用類的命名定義了方法的類型,代表了一類參數(shù)列表相同的方法。
 
對,沒錯,就是將各種不同命名的同參數(shù)列表的方法,進行了具有可以歸類批量處理能力的封裝,歸類后就可以很方便的把標注了delegate這個關鍵字的具有特定參數(shù)列表的方法標記為一個類,并在所有做了訂閱操作(+=)的方法,放置于其編譯后所生成的代理類中的一個List<T>中,那么在調(diào)用的時候,就可以簡單地使用調(diào)用delegate的一個實例成員,來通過一次輸入代理所定義的參數(shù)列表,調(diào)用訂閱了這一委托實例的這一組同類型方法,因為他們需要的參數(shù)列表都是相同的嘛~。

我想了解如何學習

姓名:
手機:
留言: