• 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 }
  • 相关阅读:
    day5 -常用模块
    day4装饰器-迭代器&&生成器
    h5 canvas 图片上传操作
    Tomcat上传文件报错:returned a response status of 403 Forbidden
    $.each遍历json对象
    Java求字符串中出现次数最多的字符
    线程池原理
    谈谈你对Hibernate的理解
    为什么要用 ORM? 和 JDBC 有何不一样?
    多线程有几种实现方法?同步有几种实现方法?(被问到)
  • 原文地址:https://www.cnblogs.com/AaronBlogs/p/6828159.html
Copyright © 2020-2023  润新知