国产探花免费观看_亚洲丰满少妇自慰呻吟_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#中常見的委托


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 称多县| 阿鲁科尔沁旗| 临漳县| 柏乡县| 青神县| 游戏| 奉贤区| 吕梁市| 邵阳市| 新野县| 江永县| 巴南区| 眉山市| 四子王旗| 封丘县| 焦作市| 高台县| 独山县| 炎陵县| 包头市| 区。| 酉阳| 盖州市| 万年县| 永兴县| 灌阳县| 荥经县| 称多县| 防城港市| 察哈| 城固县| 桑日县| 宁陵县| 双鸭山市| 循化| 团风县| 景洪市| 威海市| 新乡县| 和龙市| 独山县|