定義和使用委託可分為3個步驟即宣告委託型別、例項化委託物件和呼叫委託方法。
宣告委託型別就是告訴編譯器這種型別代表了哪種型別的方法。語法如下:
[修飾符] delegate 返回型別 委託型別名(引數列表);
例如:private delegate void mydelegate(int n); //宣告委託型別
注:①在宣告乙個委託型別時,每個委託型別都描述引數的個數和型別以及他們可以引用的方法的返回型別。所以每當需要乙個新的引數型別或者新的返回型別時,都需要宣告乙個新的委託型別。
②委託型別的引數個數、資料型別和順序以及返回值必須與後面引用的方法相一致。
委託型別名 委託物件名 = new 委託型別名(靜態方法或者例項方法);
例如:mydelegate p; //定義委託物件p
另外,委託物件還需要例項化為呼叫的方法,假設乙個testclass類如下:
class testclass
的2倍 = ",n,2*n);}
}可以通過以下語句例項化委託物件p:
testclass obj = new testclass();
mydelegate p = new mydelegate(obj.fun1); //例項化委託物件並與obj.fun1()方法相關聯
通過委託物件的名稱(後面跟要傳遞給委託的引數,放在括號內)呼叫委託物件。語法格式如下:
委託物件名(實參列表);
例如:p(5);
其執行結果如下:
5的2倍 = 10
注: p(5)語句的執行過程是:p是乙個委託物件,它已指向
obj.fun1事件處理方法,現將引數5傳遞給obj.fun1方法,然後執行該方法,相當於執行obj.fun1(5).
C 中的委託機制 二)
c 中的委託機制 二 那麼其實在c 中還有三個不同的委託類,分別是 action和func以及predicate。action action 是一種無返回值的泛型委託。它可以是無引數的,也可以是含參的,最高支援16個引數,基本的格式為 訪問許可權控制符 static void 函式名 actiona...
C 中的委託
委託是個比較讓人費解的東西,最近把這個東西翻來覆去看了幾遍了,有了些想法,希望能對同樣卡在這裡的同志一些啟發。在這裡主要提供一種理解思路,畢竟像基本語法 規範之類的,查參考書是最好的了。首先來看看乙個宣告乙個物件的過程 class someclass 定義乙個類 someclass sample 宣...
C 中的委託
c 中的委託 引言 c 中的委託著實讓我迷惑 我是位初學者 在不同的c 書籍中,還譯為 委派等,經反覆查閱資料和自己動手編寫 才稍稍理出點頭緒。c 中的委託類似於c或c 中的函式指標,但兩者有本質區別 c或c 不是型別安全的,但c 中的委託是物件導向的,而且是型別安全的。從技術角度來講,委託是乙個引...