1,什麼是委託
委託是什麼?從生活理解就像是你是乙個c# 程式設計師,你對c++ 並不了解,當需要進行c++ **分析的時候你委託給你的一位懂c++ 的同事幫你來完成;在c# 中,委託的作用是這樣描述的:委託就像乙個函式的指標,在程式執行時可以使用它們來呼叫不同的函式。簡單點說,委託能夠引用函式,通過傳遞位址的機制完成。委託是乙個類,當你對它例項化時,要提供乙個引用函式( 通常是函式的名) ,將其作為它建構函式的引數。
每乙個委託都有自己的簽名,比如delegate string dosomedelegate(string s,bool b); 就是乙個委託宣告,dosomedelegate 這個委託有string 和bool 型別的形參,返回乙個int 型別,這個委託可以呼叫有string 和bool 型別的形參,返回乙個string 型別的函式( 也就是被引用的函式必須和委託有相同的簽名) 。
private string dosomefunc(string s,bool b)
可以將這個函式傳給dosomedelegate, 因為這兩個函式的簽名相同( 相同的引數和返回型別)
dosomedelegate dosomedelegate = new dosomedelegate(dosomefunc);
輸出結果是:biyy is true
2,什麼是事件
委託和事件這兩個概念是完全配合的。在某件事情發生時,乙個物件可以通過事件通知另乙個物件。乙個物件可以宣告乙個事件,至於這個事件如何處理它並不關心;
事件制訂了使用委託的規則。委託必須沒有返回值,且有兩個接受引數,第乙個引數是乙個物件的引用,代表產生事件的一方,第二個引數必須是以個從system.eventargs 類中派生的型別,在eventargs 派 生類裡,可以定義任何事件具體的引數。
首先宣告乙個public delegate void dosomedetegate(object sender,eventargs e);
然後申明乙個public event dosomedetegate dosomeevent 型別是剛定義的委託;
再定義處理事件的方法public void user_dosomefunc(object sender,eventargs e);
使用dosomeevent +=new dosomedetegate(user_dosomefunc);
一般來說事件和委託總是成對出現,如果要對委託事件有更深入的了解可以看看button等類中相關的事件定義方式。
C 委託事件
一 委託 委託類似於函式指標,但函式指標只能引用靜態方法,而委託既能引用靜態方法,也能引用例項方法。委託使用分三步 1 委託宣告。2 委託例項化。3 委託呼叫。例程一 程式 using system namespace 委託 private int add int num1,int num2 例中,...
C 委託事件
1 namespace222 2324 25 26 建立執行方法 27 28 29 30 31static int stratrun int count,int num count num 3233 34 35 第一步宣告委託 36 37 計算前的總數 38 數字39 計算後的總數 40public...
c 委託和委託事件
委託很好用,c 的委託有點函式指標的感覺,它能簡化判斷語句的使用,還能為視窗新增新的事件。weituo.cs using system using system.collections.generic using system.linq using system.text namespace fen...