1. 程式人生 > >C# 委托事件

C# 委托事件

npr return pac esp blog names 方法 dev code

  

 1 namespace ConsoleApplication6
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {   
 7             //實例化委托類
 8             MyApp app=new MyApp();
 9             //事件綁定要執行的方法
10             app.PressKeyBoard += StratRun;
11             while (true)
12             {
13 //聲明鍵盤按下的值 14 int onKey; 15 //嘗試把鍵盤按下的字符串轉換int數字類型。失敗返回0; 16 int.TryParse(Console.ReadLine(), out onKey); 17 //執行觸發事件的方法(傳入總數和鍵盤按下的值) 18 app.OnPressKeyBoard(app.Count,onKey); 19 //打印總數值 20 Console.WriteLine("
總數值為:"+app.Count); 21 } 22 23 24 } 25 /// <summary> 26 /// 創建執行方法 27 /// </summary> 28 /// <param name="count"></param> 29 /// <param name="num"></param> 30 /// <returns></returns> 31 static
int StratRun(int count, int num) => count + num; 32 33 } 34 /// <summary> 35 /// 第一步聲明委托 36 /// </summary> 37 /// <param name="count">計算前的總數</param> 38 /// <param name="num">數字</param> 39 /// <returns>計算後的總數</returns> 40 public delegate int PressKeyBoardEventHandler(int count,int num); 41 42 public class MyApp 43 { 44 /// <summary> 45 /// 總數 46 /// </summary> 47 public int Count = 0; 48 //第二步聲明事件實例化委托 49 public event PressKeyBoardEventHandler PressKeyBoard; 50 /// <summary> 51 /// 創建方法觸發事件 52 /// </summary> 53 /// <param name="count"></param> 54 /// <param name="num"></param> 55 /// <returns></returns> 56 public virtual void OnPressKeyBoard(int count, int num) 57 { 58 var invoke = PressKeyBoard?.Invoke(count, num); 59 if (invoke != null) 60 { 61 Count = (int) invoke; 62 } 63 } 64 } 65 }

//委托是一種類型。
//事件是委托的一個實例。

//1.聲明委托
//2,聲明事件實例化委托
//3.創建觸發事件的方法
//4.創建事件執行的綁定方法
//5.實例化該委托的類
//6.把觸發事件的方法綁定在事件上
//7.執行觸發事件方法

C# 委托事件