委託和事件再探索

2021-05-22 00:32:46 字數 1047 閱讀 7900

一直以為張子陽是位功力深厚的長者,今天才知道他比

我大一歲!功力深厚也就罷了,還長得那麼帥!

汗顏!!!

張老師(在技術上不分輩分)的文章我一直關注,由淺及深,能跟著學不少東西非常棒!我看技術從來不做筆記的,以為自己腦子好使,最近 發現老是忘事,看來到了該做筆記的年齡了!

具體的關於c#中的委託和事件我就不再這裡累述了,請看:

c#中的委託和事件--張子陽

只記錄下印象深刻的幾點:

1 什麼是委託:就是方法作為引數傳遞給方法

再進一步說,委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法, 可以避免在程式中大量使用if-else(switch)語句,同時使得程式具有更好的可擴充套件性。

2 那麼為什麼要有委託?從上面的定義中也可以看出一二來,再者就是用於observer模式

3 委託和事件的關係:就像變數和屬性的關係一樣,為了封裝,為了不對委託進行任意的賦值(就是用「=」);屬性就是乙個進行了封裝的委 託型別的變數而已

4 上面提到了:observer設計模

observer設計模式中主要包括如下兩類物件:

subject:監視物件,它往往包含著其他物件所感興趣的內容。在本範例 中,熱水 器就是乙個監視物件,它包含的其他物件所感興趣的內容,就是temprature欄位,當這個字 段的值快到100時,會不斷把資料發給監視它的物件。

observer:監視者,它監視subject,當subject 中的某件事發生的時候,會告知observer,而observer則會採取相應的行動。在本範例中,observer有警報器和顯 示器,它們採取的行動分別是發出警報和顯示水溫

5 .net framework的編碼規範

委 託型別的名稱都應該以eventhandler結束。

委託的原型定義:有乙個void返回值,並接受兩個輸入引數:乙個object 型別,乙個 eventargs型別(或繼承自eventargs)

事件的命名為 委託去掉 eventhandler之後剩餘的部分。

繼承自eventargs的型別應該以eventargs結尾。

c 委託和事件再理解

委託 c 中的委託類似於 c 或 c 中的函式指標。使用委託使程式設計師可以將方法引用封裝在委託物件內。然後可以將該委託物件傳遞給可呼叫所引用方法的 而不必在編譯時知道將呼叫哪個方法。與 c 或 c 中的函式指標不同,委託是物件導向 型別安全的,並且是安全的。委託宣告定義一種型別,它用一組特定的引數...

再探委託與事件

委託 在這裡補充兩個對委託運用得比較少的示例 一 將委託作為 引數傳遞,然後再呼叫 二 使用委託呼叫 內部類中的方法 示例一 委託作為引數 using system using system.collections.generic using system.text namespace 委託作為引數...

委託和事件

主要過程如下 1.在後台 中,我們可以定義處理程式方法alartrang 2.然後定義委託,引用到處理程式方法的例項。3.最後將委託新增到事件中。從而,引發事件時就會呼叫相關的事件處理方法。若要使用在另乙個類中定義的事件,必須定義和註冊乙個事件處理程式。事件 處理程式必須具有與為事件宣告的委託相同的...