C 委託二 委託型別

2022-01-11 12:22:44 字數 1197 閱讀 2514

我們都應該清楚,在使用委託之前,先要定義乙個委託型別,如下所示:

delegate int mydelegate(int a,int b);

mydelegate md =null;

既然叫做委託型別

,就說明

mydelegate

實際上是乙個類,上面的寫法只是一種簡單的縮略寫法,

實際上,我們自己定義的委託,都是繼承自

system.multicastdelegate

類的.

可以發現還存在4個方法,乙個是建構函式。

multicastdelegate類

multidelegate

類是乙個特殊類(

special class

),和system.delegate

類一樣,該類只能夠被編譯器以及內建的工具類所繼承,我們自定義的類是不能夠顯式的繼承自該類的。

multidelegate

類當中可以包括乙個委託的鍊錶,這個表中,可以包括乙個或多個元素(每個元素都是乙個委託),我們可以將這個表稱為呼叫鏈。當我們呼叫乙個

multidelegate

的時候,位於該

multidelegate

呼叫鏈中的委託就會被序列呼叫。這樣我們就可以只呼叫乙個方

法,而多個相同簽名的方法就

會同時被序列呼叫。關於多播委託的說明,我們會在後面的內容中進行講解。

invoke方法

為了解釋

invoke

方法,我們先來回顧一下,當乙個委託指向了乙個方法時是如何呼叫的,**如下所示:

int c = this.md(a,b);

我們在呼叫委託,並執行該委託所指向的方法時,本質上就是呼叫了其

invoke

方法。實際上,我們可以直接呼叫其

invoke

方法,**如下所示:

int c = this.md.invoke(a,b);

另外,與

invoke

方法對應的

begininvoke,

是對invoke

方法的乙個非同步呼叫,而

endinvoke

是非同步呼叫完成後的處理方法。

C 委託型別

委託是c 語言提供的新的引用型別,即委託型別,也稱 型別。在功能上類似於 c語言的函式指標,目的是通過委託型別物件去呼叫相同簽名的函式。委託是從system.delegate 中派生的,因此是型別安全的。採用委託可以實現通用程式的編寫。委託的操作步驟 1.定義委託型別 2.定義委託物件 3.定義委託...

C 函式委託型別

rel file list href file c 5cdocume 7e1 5cadmini 7e1 5clocals 7e1 5ctemp 5cmsohtml1 5c04 5cclip filelist.xml c 函式委託型別 rel file list href file c 5cdocum...

C 委託 委託概述

c 委託概述 委託這個詞在生活中經常用到,委託律師打官司,委託房地產公司購買房子。委託保險 人辦理保險。委託就是把事情交給別人去辦。c 中的委託和生活中的委託很相似,如果將乙個方法委託給乙個物件,那麼這個物件就可以全權 這個方法執行。委託宣告定義乙個類,它是從 system.delegate 類派生...