zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    系统可靠性计算
    jira与readmine区别
    linux下批量替换文件内容
    JMeter学习(十九)JMeter测试MongoDB
    mongoVUE1.5.3 破解方法
    Junit使用GroboUtils进行多线程测试
    JMeter学习(十八)JMeter测试Java(二)
    JMeter学习(十七)JMeter测试Java
    Tomcat 和 Resin 比较,哪个更适合你?
    JMeter学习(十四)JMeter监控Tomcat性能
  • 原文地址:https://www.cnblogs.com/AaronBlogs/p/6828159.html
Copyright © 2011-2022 走看看