C 中的委託 delegate 用法簡介

2021-04-02 02:11:37 字數 807 閱讀 7237

委託 delegate是只有乙個函式的特殊的類

委託物件的引用相當函式指標

delegate 宣告定義一種引用型別,該型別可用於將方法用特定的簽名封裝。委託例項封裝靜態方法或例項方法。委託大致類似於 c++ 中的函式指標;但是,委託是型別安全和可靠的。

委託使您得以將函式作為引數傳遞。委託的型別安全要求作為委託傳遞的函式擁有同委託宣告相同的簽名

使用委託使程式設計師可以將方法引用封裝在委託物件內。然後可以將該委託物件傳遞給某個方法,而不必在編譯時知道將呼叫哪個方法。與 c 或 c++ 中的函式指標不同,委託是物件導向、型別安全的

委託宣告定義一種型別,它用一組特定的引數以及返回型別封裝方法。對於靜態方法,委託物件封裝要呼叫的方法。對於例項方法,委託物件同時封裝乙個例項和該例項上的乙個方法。如果您有乙個委託物件和一組適當的引數,則可以用這些引數呼叫該委託。

委託的乙個有趣且有用的屬性是,它不知道或不關心自己引用的物件的類。任何物件都可以;只是方法的引數型別和返回型別必須與委託的引數型別和返回型別相匹配。這使得委託完全適合「匿名」呼叫

class program

static public bool less(int a, int b)

}//2

delegate void mydelegate(int i);

class program

public static void takesadelegate(mydelegate somefunction)

public static void delegatefunction(int i)

.", i);

} }

C 中的委託 delegate

delegate,中文意為 委託 是c 中新引入的乙個概念。我個人的理解,delegate相當於c 中函式指標在oop程式設計下的封裝。delegate的用途,如同函式指標的功能一樣,是為了在類似啟動執行緒 通用庫中的高階函式 以及事件處理等場合中,把乙個方法,或者說函式,作為乙個引數來傳遞。del...

C 中的delegate 委託

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

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

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