C 語言 05 委託和事件

2022-04-01 08:33:14 字數 722 閱讀 2974

a. 委託:是一種定義方法簽名的型別,可以與具有相容簽名的任何方法關聯。所謂相容的方法,是指這個方法和委託的方法簽名具有相同的返回型別和引數

i. 語法:

delegate

方法簽名;

1. 方法簽名是方法的名字,沒有方法體

ii. 使用委託的過程

1. 定義委託和委託物件

2. 編寫要委託的方法

3. 將要委託的方法傳遞給委託物件

4. 使用委託呼叫委託方法

iii. 多播委託:是將多個與委託有相同方法簽名的方法繫結到同乙個方法上

1. 使用多播委託要求方法返回型別為 void

2. 用「+=」號給委託增加乙個方法,用「-=」號從委託鏈減去乙個方法

b. 事件:是多播委託的一種特例,使用事件有更好的安全性,避免了委託物件被篡改

i. 語法:

public

delegate

void

eventhandler(object sender,eventargs e);

public

event

eventhandler questionevent

a. 說明:

i. 委託中的 sender 引數表示事件的發出者,eventargs e 表示事件的資料

ii. eventargs 是所有事件引數的基類,本身不包含資料

C 事件和委託

c 程式設計中的事件驅動是說應用程式的執行流程是由外界發生的事件確定的。也就是接受到任務再工作的模式。事件是乙個訊號,它告知應用程式有重要的事情發生。真正的執 況是,各個應用程式把負責不同功能的物件在其執行期間送入windows作業系統,讓這些物件等待windows產生事件。然後加以處理,windo...

C 委託和事件

什麼是委託?委託和事件這兩個概念是完全配合的。委託僅僅是函式指標,那就是說,它能夠引用函式,通過傳遞位址的機制完成。委託是乙個類,當你對它例項化時,要提供乙個引用函式,將其作為它建構函式的引數 先看示例 例中先申明乙個委託,例如 public delegate void somedelegate s...

C 委託和事件

要為類構造乙個事件,必須用 event 來宣告乙個 delegate 型的字段,如 puclic calss test 在建立類的例項後定義這個 load 事件 test m new test m.load new eventhandler m load void m load object sen...