C#一个关于委托和事件通俗易懂的例子

 1 using System;
 2 
 3 namespace Test
 4 {
 5     public class 室友
 6     {
 7         public delegate void 这是一个委托();
 8 
 9         public void 起床晨跑去()
10         {
11             Console.WriteLine("室友:喂,起床啦!");
12             if (叫别人起床该干嘛干嘛 != null) //如果有人委托我什么
13             {
14                 叫别人起床该干嘛干嘛();
15             }
16             Console.WriteLine("室友:完事走人,晨跑去!");
17         }
18 
19         public event 这是一个委托 叫别人起床该干嘛干嘛;
20     }
21 
22     public class 要晨读的我
23     {
24         public void 起床晨读()
25         {
26             Console.WriteLine("我:哦,起来了!!!");
27             Console.WriteLine("我:一二三四五,上网看知乎,刷完知乎再晨读!");
28         }
29     }
30 
31     public class 王八犊子
32     {
33         public void 赌五毛起不来()
34         {
35             Console.WriteLine("王八犊子:五毛拿走,劳资要碎觉!");
36         }
37     }
38 
39     class Program
40     {
41         static void Main(string[] args)
42         {
43 
44             var 中国好室友 = new 室友();
45             var 我 = new 要晨读的我();
46             var 王八犊子 = new 王八犊子();
47 
48             //我先告诉室友:我要早起晨读
49             中国好室友.叫别人起床该干嘛干嘛 += 我.起床晨读;
50             //王八犊子来搅屎了
51             中国好室友.叫别人起床该干嘛干嘛 += 王八犊子.赌五毛起不来;
52             //于是第二天到了
53             Console.WriteLine("闹铃:早上七点钟...");
54             Console.WriteLine("系统提示:室友起床了!");
55             中国好室友.起床晨跑去();
56         }
57     }
58 }

 

posted @ 2017-05-08 22:13  AaronBlogs  阅读(610)  评论(0编辑  收藏  举报