zoukankan      html  css  js  c++  java
  • 委托/事件:猫叫鼠跑人醒

    猫叫鼠跑人醒,这是一个很经典的   委托/事件  案例,本例中,猫类、鼠类、人类的基本属性不再累述,关键说一下  委托/事件。

    第一步:因此在定义完毕  委托/事件  之后,要让猫叫触发定义的事件,

    第二步:要给鼠对象、人对象订阅猫叫事件,以在猫叫触发事件时作出相应的反应。

    using System;

    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace CatCryRatRunMasterWake
    {
      /// <summary>
      /// define a delegate
      /// </summary>
      public delegate void CatCryEventHandle();

      class Program
      {
        static void Main(string[] args)
        {
          Cat cat = new Cat("Tom");
          Rat rat = new Rat("Jack", cat);
          Master master = new Master("Ls", cat);
          cat.Cry();

          Console.ReadKey();
        }
      }

      /// <summary>
      /// define a cat objects
      /// </summary>
      public class Cat
      {
        private string _name;

        //define a cat cry event
        public event CatCryEventHandle WhenCatCry;

        public Cat(string name)
        {
        _name = name;
          }

        public void Cry()
        {
          this.WhenCatCry();
          Console.WriteLine("猫叫!");
        }
      }

      /// <summary>
      /// define a rat objects
      /// </summary>
      public class Rat
      {
        private string _name;
        public Rat(string name, Cat cat)
        {
          _name = name;
          cat.WhenCatCry += Run; //订阅猫叫事件
        }

        public void Run()
        {
          Console.WriteLine("老鼠跑!");
        }
      }

      /// <summary>
      /// define a master objects
      /// </summary>
      public class Master
      {
        private string _name;
        public Master(string name, Cat cat)
        {
          _name = name;
          cat.WhenCatCry += WakeUp; //订阅猫叫事件
        }

        public void WakeUp()
        {
          Console.WriteLine("主人醒!");
        }
      }
    }

  • 相关阅读:
    JS提取子字符串函数比较
    js事件定义方式和获取事件对象event总结
    让body的clientHeight与html的clientHeight相等的方法
    关于原型链和继承问题的思考:为什么不能直接把父类的prototype赋值给子类的prototype
    [javascript权威指南笔记02]Throw语句和异常处理机制try/catch/finally
    转载:javascript语句标签
    转:JS中强大的正则表达式
    分享我常用的Javascript工具函数
    对prototype,instanceof和constrctor的理解
    xml基础知识总结和回顾
  • 原文地址:https://www.cnblogs.com/jack-Leo/p/6404646.html
Copyright © 2011-2022 走看看