事件

先简单说下委托和事件:
  委托是一个神奇的东西,简单来说它是一个指向方法的类型。
  事件是一个委托类型的变量。
  事件有发布器和订阅器,其实本质就是个 观察者模式。

关于事件,直接上 Demo:
 1     /// <summary>
 2     /// 发布类
 3     /// </summary>
 4     class Summer
 5     {
 6         // 定义一个委托
 7         public delegate void SummerComeEventHandler();
 8         // 声明一个委托类型变量,即 "夏天来了" 事件
 9         public event SummerComeEventHandler SummerComeEvent;
10 
11         public void SummerCome()
12         {
13             Console.WriteLine("Summer is Coming!");
14             // 触发 "夏天来了" 事件
15             SummerComeEvent();
16         }
17     }
18 
19     /// <summary>
20     /// 订阅器
21     /// </summary>
22     class Spring
23     {
24         public Spring(Summer summer)
25         {
26             // 订阅 "夏天来了" 事件,并回应 "春天走了"
27             summer.SummerComeEvent += this.SpringGone;
28         }
29 
30         public void SpringGone()
31         {
32             Console.WriteLine("Spring is gone");
33         }
34     }
35 
36     class Program
37     {
38         static void Main(string[] args)
39         {
40             Summer summer = new Summer();
41             Spring spring = new Spring(summer);
42             summer.SummerCome();
43             Console.ReadKey();
44         }
45     }
View Code

  结果:

  

以上。

朱子家训说:宜未雨而筹谋,勿临渴而掘井。 任何事情要到了跟前才想解决办法,那我们岂不很被动!
原文地址:https://www.cnblogs.com/jianyingjie/p/11310604.html