C 我理解的委託Delegate

2021-10-06 07:17:19 字數 500 閱讀 3298

一直以為委託很難,可能是自己太菜,覺得很不好理解。

直到我今天需要將方法作為乙個引數傳遞,我才有興趣去看委託怎麼用。

先說定義:

委託是使用者自定義的類,它定義了方法的型別。

儲存的是一系列具有相同引數和返回型別方法的位址列表,呼叫委託時,此委託列表的所有方法都將被執行。

我理解的很直白的說,委託就是乙個中間變數!

沒錯,就是乙個中間變數!就像我們常用的temp作為int或者float的中間變數一樣。

定義:public delegate void mydelegate();

宣告委託,同時賦值,呼叫:

//宣告委託 同時賦值

mydelegate del;

void start()

void fun1()

void fun2(mydelegate _del)

結果:

我理解的委託 delegate

2 主體內申明使用 的方法 public void myfunction 被附體的 申明 被附體的方法 準備二 1 主體外寫準備附體的方法,上面申明的引數和返回值一致 private void 準備附體的方法1 int inttemp 你也可以這樣申明 private void 準備附體的方法2 i...

C 中委託 delegate 和多播委託的理解

委託是定址方法的.net版本。在c 高階程式設計 第七版 中這是對委託的第一句描述。什麼是定址方法?簡單理解為我們通過委託傳遞乙個方法給另乙個方法。什麼時候需要傳遞方法?在微軟的官方文件和c 高階程式設計 第七版 這本書都提到乙個例子 在物件的排序演算法中,需要對物件進行比較,而不同物件比較的方法不...

筆記 C 委託 delegate

網上查了很多資料,發現講委託的思路很亂!於是來整理一下。1 比喻 我把委託看成是手槍上的彈匣,而需要委託的函式則是彈匣中的子彈。要打幾槍就在委託裡裝幾發子彈,然後帶上這把槍 而不是去為每把槍裝上一發子彈,然後背一大堆槍 這裡的槍就是主函式gun 子彈可能是fire ice gold 屬性 彈匣就是委...