委託(C# 編程指南)

來源:互聯網
上載者:User
委託(C# 編程指南)

 

委託是一種引用方法的類型。一旦為委託分配了方法,委託將與該方法具有完全相同的行為。委託方法的使用可以像其他任何方法一樣,具有參數和傳回值,如下面的樣本所示:

C# 複製代碼
public delegate int PerformCalculation(int x, int y);

與委託的簽名(由傳回型別和參數組成)匹配的任何方法都可以分配給該委託。這樣就可以通過編程方式來更改方法調用,還可以向現有類中插入新代碼。只要知道委託的簽名,便可以分配自己的委託方法。

將方法作為參數進行引用的能力使委託成為定義回調方法的理想選擇。例如,可以向排序演算法傳遞對比較兩個對象的方法的引用。分離比較代碼使得可以採用更通用的方式編寫演算法。

委託概述

委託具有以下特點:

  • 委託類似於 C++ 函數指標,但它是型別安全的。

  • 委託允許將方法作為參數進行傳遞。

  • 委託可用於定義回調方法。

  • 委託可以連結在一起;例如,可以對一個事件調用多個方法。

  • 方法不需要與委託簽名精確匹配。有關更多資訊,請參見協變和逆變。

  • C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作為參數傳遞,以代替單獨定義的方法。

本節內容
  • 委託概述

  • 何時使用委託而不使用介面

  • 命名方法

  • 匿名方法

  • 協變和逆變

  • 如何:合并委託

  • 如何:聲明、執行個體化和使用委託

C# 語言規範

有關更多資訊,請參見 C# 語言規範中的以下各章節:

  • 1.11 委託

  • 4.2.6 委託類型

  • 7.5.5.2 委託調用

  • 15 委託

 

 (來源:msdn )

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.