程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中委托演變的的三個階段

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

編輯:C#入門知識

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


委托是一種可以把引用存儲為函數的類型,定義了委托後,就可以聲明該委托類型的變量,接著把這個變量初始化為與委托有相同返回類型和參數列表的函數引用,之後就可以使用委托變量調用這個函數,就像是該變量是一個函數一樣,有了引用函數的變量後,還可以執行不能用其他方式完成的操作,例如可以把委托變量作為參數傳遞給一個函數,這樣該函數就可以使用委托調用它引用的任何函數,而且在運行之前無需知道調用的是哪個函數。   復制代碼 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以後的版本中,在創建新方法的系統開銷不必要時,允許您對委托進行實例化,並立即指定委托將在被調用時處理的代碼塊。   這些被稱為匿名方法,        

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved