zoukankan      html  css  js  c++  java
  • c#事件机制

    namespace test
    {
        class Publisher//出版社
        {
            public delegate void PubComputer(string magazineName);//声明事件所需的代理
            public delegate void PubLife(string magazineName);
            public event PubComputer OnPubComputer;//事件的声明 事件的本质是一个委托链
            public event PubLife OnPubLife;
            public void issueComputer()//触发事件的方法
            {
                if (OnPubComputer != null){
                    Console.WriteLine("发行电脑刊物");
                    OnPubComputer("编程指南");
                }
            }
            public void issueLife()
            {
                if (OnPubLife!=null) {
                    Console.WriteLine("发行生活刊物");
                    OnPubLife("家具");
                }
            }
        }
        class Subsriber//订阅者
        {
            private string name;
            public Subsriber(string name){
                this.name = name;
            }
            public void Receive(string magazineName)//在事件订阅者中定义事件处理程序
            {
                Console.WriteLine(name + "已经收到" + magazineName);
            }
        }
        class Story
        {
            static void Main()
            {
                Publisher pub = new Publisher();
                Subsriber zs = new Subsriber("张三");
                pub.OnPubComputer += new Publisher.PubComputer(zs.Receive);//向事件发行者订阅一个事件
                Subsriber ls = new Subsriber("李四");
                pub.OnPubComputer += new Publisher.PubComputer(ls.Receive);
                pub.OnPubLife += new Publisher.PubLife(ls.Receive);
                pub.issueComputer();//触发事件
                pub.issueLife();
                Console.WriteLine();
                Console.WriteLine("一年后");
                pub.OnPubComputer -= new Publisher.PubComputer(ls.Receive);
                pub.issueComputer();//触发事件
                pub.issueLife();
            }
        }
    
    }
  • 相关阅读:
    python 装饰器
    函数嵌套,函数对象
    函数的形参和实参
    函数
    周末复习知识1
    文件修改 文件处理
    字符编码,文件管理
    安卓CTS官方文档之兼容性测试套件简介-attach
    安卓CTS官方文档之兼容性测试套件简介
    MPEG-DASH on IIS Practice in Action-attach
  • 原文地址:https://www.cnblogs.com/as3lib/p/6227703.html
Copyright © 2011-2022 走看看