标签:stat code col 实现 event 传递 www. color 注册
我们用一个简单的例子,来说明一下这种消息传递的机制。
有一家三口,妈妈负责做饭,爸爸和孩子负责吃。。。将这三个人,想象成三个类。
妈妈有一个方法,叫做“做饭”。有一个事件,叫做“开饭”。做完饭后,调用开发事件,发布开饭消息。
爸爸和孩子分别有一个方法,叫做“吃饭”。
将爸爸和孩子的“吃饭”方法,注册到妈妈的“开饭”事件。也就是,订阅妈妈的开饭消息。让妈妈做完饭开饭时,发布吃饭消息时,告诉爸爸和孩子一声。
这种机制就是C#中的,订阅发布。下面我们用代码实现:
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 }
来源:http://www.cnblogs.com/David-Huang/p/5150671.html
作者写的这个事件通俗易懂,忍不住把它拷贝过来
标签:stat code col 实现 event 传递 www. color 注册
原文地址:http://www.cnblogs.com/shelly0307/p/7580444.html