委託是一種程式特性,用於表示方法(方法的代表,方法的指標),通俗來說就是自己做不了的,通過委託任務給別人來完成。
在委託中,可以動態的增加或刪減具體方法與委託變數的關聯。
多播委託是指委託變數中有多個具體方法,委託變數執行時會按照具體方法加入的先後順序,執行具體方法。
1、宣告委託
//1、宣告委託
public delegate void sendmsgdelegate(string msg);
public delegate void recvmsgdelegate(string msg);
2、編寫委託的具體方法
//2、編寫委託方法
public void recvmsg(string msg)
3、建立委託變數
public sendmsgdelegate sendmsgdelegate;
4、關聯委託
public form1()
5、執行委託
sendmsgdelegate(textbox1.text.tostring());
事件是物件對外界資訊發生變化,產生的一種訊息響應機制,本質上就是乙個委託,是委託的進一步包裝
public event eventhandler click;
事件的參與者:傳送者(sender)接受者(receiver)
事件與委託的區別
1、事件不能直接賦值,更不能賦值為null,就是因為這樣可以避免使用者對事件的直接操作,造成底層**被清除,發生異常,起到乙個保護作用。
2、event物件中沒有invoke方法
事件與委託的使用情況
1、在大多數情況,二者都可以處理問題且沒有較大區別時,建議使用委託
2、在對控制項進行二次開發時,必須使用事件
事件使用的一般步驟
1、宣告委託
2、定義事件
3、激發事件
4、編寫事件響應方法
5、關聯/移除事件
ps:在接受者中,編寫響應方法和關聯/移除事件。傳送者激發事件。
參考**:
C 委託與事件之學習
一 c 委託類 委託類似於函式指標,但函式指標只能引用靜態方法,而委託既能引用靜態方法,也能引用例項方法。委託使用分三步 1 委託宣告 2 委託例項化 3 委託呼叫。例程一 程式 using system namespace 委託 private int add int num1,int num2 ...
委託與事件學習筆記1 什麼是委託?
女兒想吃棒冰了,但又不想自己頂著太陽出去買 買棒冰是乙個method 所以她叫他倒霉的老爸去買 delegate 最後女兒吃到了棒冰。這就是乙個委託的過程。接下去,讓我們看看一些對委託的解釋 委託是用來處理其他語言 如 c pascal 和 modula 需用函式指標來處理的情況的。不過與 c 函式...
c 委託與事件
c 委託與事件 心得 c 用委託來實現事件通知機制。委託相當與c 函式指標。整個過程涉及乙個呼叫者,乙個被呼叫者,還有就是這個委託。實現步驟有以下幾步 1.申明委託,2.定義呼叫者和呼叫的函式,3.定義被呼叫者和具體實現的函式 被呼叫的函式 1.申明委託 在包裡或者類裡,public public ...