C 中的委託 delegate

2021-04-13 02:56:48 字數 678 閱讀 7113

delegate,中文意為「委託」。是c#中新引入的乙個概念。我個人的理解,delegate相當於c++中函式指標在oop程式設計下的封裝。

delegate的用途,如同函式指標的功能一樣,是為了在類似啟動執行緒、通用庫中的高階函式、以及事件處理等場合中,把乙個方法,或者說函式,作為乙個引數來傳遞。delegate的例項,就是那個作為引數的方法。

在c#中,delegate作為一種特殊的類而存在。它的使用方法和使用乙個類一樣,分2步進行:

1、像定義乙個類一樣,首先宣告delegate,完成delegate的定義。

2、對所定義的delegate,宣告它的例項,並在程式**中使用該例項。

對於delegate的定義,出於嚴格的型別安全性的考慮,要求嚴格宣告出該委託所代表的方法的簽名,即傳遞什麼型別的引數,返回什麼型別的返回值。該委託只能代表和他的定義中簽名完全一致的方法。

每個delegate,都有乙個帶有乙個引數的建構函式,這一點是.net framework自動形成的,無須手工宣告。當我們宣告delegate的例項時,這個引數就是委託所要代表的方法,即委託所要代表的方法是作為delegate的建構函式的引數傳入。這個作為引數的方法,如上文提到的,其簽名必須和delegate的定義完全一致。

宣告好delegate的例項後,在我們的**中,就可以通過該delegate來傳遞它所代表的函式了,其效果基本上和c++中的函式指標一致。

C 中的delegate 委託

委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法,可以避免在程式中大量使用if else switch 語句,同時使得程式具有更好的可擴充套件性。我的理解 委託相當於就是乙個函式,它有某種功能,其變數是一種方法,通過委託能夠間接的呼叫該方...

C 中的委託 delegate 用法簡介

委託 delegate是只有乙個函式的特殊的類 委託物件的引用相當函式指標 delegate 宣告定義一種引用型別,該型別可用於將方法用特定的簽名封裝。委託例項封裝靜態方法或例項方法。委託大致類似於 c 中的函式指標 但是,委託是型別安全和可靠的。委託使您得以將函式作為引數傳遞。委託的型別安全要求作...

學習筆記 C 中的委託(delegate)

delegate 一 什麼是委託?委託是一種引用型別,它是函式指標的託管版本。在c 中,委託是一種可以把引用儲存為函式的型別。委託可以引用例項和靜態方法,而函式指標只能引用靜態方法。委託的宣告非常類似於函式,和函式不同的的是委託不帶函式體,並且需要delegate關鍵字。委託的宣告指定了乙個函式簽名...