網上查了很多資料,發現講委託的思路很亂!於是來整理一下。
1 比喻
我把委託看成是手槍上的彈匣,而需要委託的函式則是彈匣中的子彈。
要打幾槍就在委託裡裝幾發子彈,然後帶上這把槍;
而不是去為每把槍裝上一發子彈,然後背一大堆槍;
這裡的槍就是主函式gun();
子彈可能是fire(),ice(),gold()屬性
彈匣就是委託容器delegate magazine();
2 說明
要使用委託,先要宣告委託,就是起草設計圖。
接著是將委託這個彈匣照著設計圖生產出來。
然後就是使用了。
1:準備工作:設計圖
1.1: 宣告需要委託的函式:(子彈:火屬性)
string
fire()
//bullet子彈
1.2: 宣告乙個委託:magazine 彈匣
delegate
void
magazine()
;//宣告乙個新的委託型別
2:實際使用:生產&出廠設定
2.1: 例項化委託容器:
按照magazine設計圖,生產彈匣magazine。
並填入一發子彈fire();
delegate
void
magazine()
;magazine magazine=fire;
//將fire函式(火屬性子彈)填入委託容器(彈匣)中
2.2: 將委託作為引數傳給主函式:將彈匣插到槍上,完成!
void
gun(
magazine magazine)
//gun=槍,magazine=彈匣
C 學習筆記 delegate 委託
delegate 簡單的可以理解為動詞名詞化。委託是乙個函式的引用,擁有和函式相同的返回值型別,而委託實際上是乙個類,他能夠持有對某種方法的引用,該類擁有乙個簽名,只能應用與其簽名相匹配的方法。正因為乙個委託是乙個例項化的類 乙個物件 所以委託是受控制和安全的。實現乙個委託 1 宣告delegate...
C 學習筆記之 委託 delegate
菜鳥教程 委託 當遇到在執行時才能決定用哪種方法的時候,使用委託。可以把delegate看做乙個包含有序方法列表的物件,這些方法具有相同的簽名和返回型別。定義乙個委託 訪問修飾符 delegate 返回型別 委託名 引數列表 訪問修飾符不是必須的 public delegate int mydele...
c 委託 delegate 揭秘
委託是一種定義方法簽名的型別。當例項化委託時,您可以將其實例與任何具有相容簽名的方法相關聯。您可以通過委託例項呼叫方法。在表面上,委託很簡單,使用new來構造委託例項。使用委託例項的變數名來呼叫 函式。實際情況是編譯器,clr在幕後做了大量的工作來隱藏其複雜性,只有了解了這些幕後的東西,你才能真正的...