What's 委托

delegate 是表示對(duì)具有特定參數(shù)列表和返回類型的方法的引用的類型。在實(shí)例化委托時(shí),你可以將其實(shí)例與任何具有兼容簽名和返回類型的方法相關(guān)聯(lián)。你可以通過委托實(shí)例調(diào)用方法。委托用于將方法作為參數(shù)傳遞給其他方法。事件處理程序就是通過委托調(diào)用的方法。你可以創(chuàng)建一個(gè)自定義方法,當(dāng)發(fā)生特定事件時(shí),某個(gè)類(如 Windows 控件)就可以調(diào)用你的方法。

下面的示例演示了一個(gè)委托聲明:

public delegate int Del(int x, int y);

可將任何可訪問類或結(jié)構(gòu)中與委托類型匹配的任何方法分配給委托。該方法可以是靜態(tài)方法,也可以是實(shí)例方法。這樣便能通過編程方式來更改方法調(diào)用,還可以向現(xiàn)有類中插入新代碼。

【備注】在方法重載的上下文中,方法的簽名不包括返回值。但在委托的上下文中,簽名包括返回值。換句話說,方法和委托必須具有相同的返回類型。

將方法作為參數(shù)進(jìn)行引用的能力使委托成為定義回調(diào)方法的理想選擇。例如,對(duì)比較兩個(gè)對(duì)象的方法的引用可以作為參數(shù)傳遞到排序算法中。由于比較代碼在一個(gè)單獨(dú)的過程中,因此可通過更常見的方式編寫排序算法。

 

委托的屬性概述

  • 類似于 C 和 C++ 中的函數(shù)指針,但它們是類型安全的。

  • 允許將方法作為參數(shù)進(jìn)行傳遞。

  • 可用于定義回調(diào)方法。

  • 委托可以鏈接在一起;例如,可以對(duì)一個(gè)事件調(diào)用多個(gè)方法。

  • 方法不必與委托類型完全匹配。

 

Use 委托

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式