c#事件订阅和注册

发布时间 2023-12-16 16:00:52作者: 四月柳巷
最典型的事件例子,猫叫了(事件源),老鼠跑了(事件订阅者),惊醒主人(事件订阅者)
源代码:

 1 class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         Cat cat = new Cat();
 6  
 7         cat.catEvent += Mouse;//订阅猫事件
 8         cat.catEvent += Person;//订阅人事件
 9  
10         cat.Cry("猫:喵~");//猫叫的动作,触发事件
11  
12         Console.ReadKey();
13     }
14  
15     private static void Person(object sender, EventArgs e)
16     {
17         Console.WriteLine("人:大半夜的不睡觉,叫唤个啥呢?~");
18     }
19  
20     private static void Mouse(object sender, EventArgs e)
21     {
22         Console.WriteLine("猫:快跑~");
23     }
24     }
25  
26     public class Cat
27     {
28         public event EventHandler<EventArgs> catEvent;
29  
30         public void Cry(string msg)
31         {
32         Console.WriteLine(msg);
33  
34         catEvent(this, new EventArgs());
35                          }
36     }
37 }  
执行结果: