筆記 C 委託 delegate

2021-10-07 18:27:29 字數 1124 閱讀 7621

網上查了很多資料,發現講委託的思路很亂!於是來整理一下。

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在幕後做了大量的工作來隱藏其複雜性,只有了解了這些幕後的東西,你才能真正的...