zoukankan      html  css  js  c++  java
  • C#委托事件

    生活中的问题,猫叫,把正在偷食的老鼠吓跑了,然后主人被吵醒了

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Test
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
    
                People people = new People();
                Cat cat = new Cat();
                people.BoilEvent += Mouse.Move; //注册静态方法
                people.BoilEvent += cat.Call; //注册方法
                people.BoilEvent += Mouse.Run; //注册方法
                people.WakeUp(); //主人醒了,会自动调用注册过对象的方法
            }
        }
    
        /// <summary>
        /// 猫的行为动作
        /// </summary>
        public class Cat
        {
            /// <summary>
            /// 猫叫了
            /// </summary>
            public void Call()
            {
                Console.WriteLine("猫发现老鼠,叫了一声!");
            }
        }
    
        /// <summary>
        /// 老鼠的行为动作
        /// </summary>
        public class Mouse
        {
            /// <summary>
            /// 老鼠动了
            /// </summary>
            public static void Move()
            {
                Console.WriteLine("老鼠为了找吃的,开始行动!");
            }
    
            /// <summary>
            /// 老鼠动了
            /// </summary>
            public static void Run()
            {
                Console.WriteLine("老鼠被吓跑了!");
            }
        }
    
        /// <summary>
        /// 人的行为动作
        /// </summary>
        public class People
        {
            public delegate void BoilHandler(); //声明委托
            public event BoilHandler BoilEvent; //声明事件
          
            /// <summary>
            /// 人醒了
            /// </summary>
            public void WakeUp()
            {
                BoilEvent();
                Console.WriteLine("听到猫叫声,主人醒了!");
            }
    
        }
    }
  • 相关阅读:
    Selenium生成Report的利器- ExtentReports
    学习使用monkey 测试
    charles 结合mocky 模拟数据
    Vue.use()源码分析且执行后干什么了
    commonjs 与 es6相关Module语法的区别
    vue函数化组件 functional
    html5细线表格制作
    移动端H5页面禁止长按复制和去掉点击时高亮
    javascript生成器
    promise和生成器的结合
  • 原文地址:https://www.cnblogs.com/hanmian4511/p/6419306.html
Copyright © 2011-2022 走看看