C# Event事件的订阅与发布
2021-05-12 10:27
标签:stat code col 实现 event 传递 www. color 注册 我们用一个简单的例子,来说明一下这种消息传递的机制。 有一家三口,妈妈负责做饭,爸爸和孩子负责吃。。。将这三个人,想象成三个类。 妈妈有一个方法,叫做“做饭”。有一个事件,叫做“开饭”。做完饭后,调用开发事件,发布开饭消息。 爸爸和孩子分别有一个方法,叫做“吃饭”。 将爸爸和孩子的“吃饭”方法,注册到妈妈的“开饭”事件。也就是,订阅妈妈的开饭消息。让妈妈做完饭开饭时,发布吃饭消息时,告诉爸爸和孩子一声。 这种机制就是C#中的,订阅发布。下面我们用代码实现: 来源:http://www.cnblogs.com/David-Huang/p/5150671.html 作者写的这个事件通俗易懂,忍不住把它拷贝过来 C# Event事件的订阅与发布 标签:stat code col 实现 event 传递 www. color 注册 原文地址:http://www.cnblogs.com/shelly0307/p/7580444.html 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace EventSimpleDemo
7 {
8 class Program
9 {
10 static void Main(string[] args)
11 {
12 Mom mom = new Mom();
13 Dad dad = new Dad();
14 Son son = new Son();
15 mom.Eat += new Action(dad.Eat);// 订阅
16 //mom.Eat += new Action(son.Eat);
17
18 mom.Cooking();
19 Console.ReadKey();
20 }
21 }
22
23 public class Mom
24 {
25 //public delegate void delegateAction();
26 public event Action Eat;// Action 可以改成委托方法:delegateAction
27
28 public void Cooking()
29 {
30 Console.WriteLine("妈妈:饭好了!");
31 if (Eat != null)
32 {
33 Eat();
34 }
35 }
36 }
37
38 public class Dad
39 {
40 public void Eat()
41 {
42 Console.WriteLine("爸爸:马上来!");
43 }
44 }
45
46 public class Son
47 {
48 public void Eat()
49 {
50 Console.WriteLine("儿子:等会再吃!");
51 }
52 }
53
54 }