国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-17 02:49:33
字體:
來源:轉載
供稿:網友

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

  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#中常見的委托


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 慈溪市| 遵义市| 新乐市| 陵水| 丹江口市| 密云县| 竹山县| 定安县| 本溪市| 新安县| 临沧市| 金塔县| 克东县| 宣恩县| 镇安县| 同仁县| 昭觉县| 许昌市| 宣化县| 襄樊市| 宁河县| 阿城市| 阳朔县| 天祝| 利辛县| 尉犁县| 滨海县| 九龙县| 张家川| 郓城县| 佛冈县| 金沙县| 凯里市| 金华市| 讷河市| 无棣县| 布尔津县| 临桂县| 太原市| 绩溪县| 陈巴尔虎旗|