C#中委託演變的的三個階段

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   io   os   ar   使用   

  1. 命名函數
  2. 匿名方法
  3. lambda運算式

委託是一種可以把引用儲存為函數的類型,定義了委託後,就可以聲明該委託類型的變數,接著把這個變數初始化為與委託有相同傳回型別和參數列表的函數引用,之後就可以使用委託變數調用這個函數,就像是該變數是一個函數一樣,有了引用函數的變數後,還可以執行不能用其他方式完成的操作,例如可以把委託變數作為參數傳遞給一個函數,這樣該函數就可以使用委託調用它引用的任何函數,而且在運行之前無需知道調用的是哪個函數。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CSharpRumenJD{    class Program    {        delegate void ProcessDelegate(int num);        static void ShowDouble(int num)        {            num *= 2;            Console.WriteLine(num);        }        static void ShowThree(int num)        {            num *= 3;            Console.WriteLine(num);        }        static void ShowFour(int num)        {            num *= 4;            Console.WriteLine(num);        }        /// <summary>        /// 這裡把委託作為參數傳遞給函數,        /// </summary>        /// <param name="pro"></param>        /// <param name="num"></param>        static void Excute(ProcessDelegate pro, int num)        {            pro(num);        }        static void Main(string[] args)        {            ProcessDelegate pro = null;            string input = Console.ReadLine();            if (input == "D")                pro += ShowDouble; //關聯函數的第一種方法            else if (input == "F")                pro = ShowFour; //關聯函數的第二種方法            else                pro = new ProcessDelegate(ShowThree);//關聯函數的第三種方法            Excute(pro, 1);            Console.ReadKey();        }    }}

代碼裡展示了委託關聯命名方法的三種基本方式

其中+=可實現累積關聯連續關聯的效果,就是說多次調用+=,委託關聯的方法會按照順序依次調用所有關聯的方法;

 

 

 

 

 C# 2.0以前,使用命名的方法是對委託進行執行個體化的唯一方式。但是在C#2.0以後的版本中,在建立新方法的系統開銷不必要時,允許您對委託進行執行個體化,並立即指定委託將在被調用時處理的代碼塊。

這些被稱為匿名方法,

 

Lambda 運算式執行個體化委託:

參考資料:

淺談C#中常見的委託

C#中委託演變的的三個階段

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.