Event使用

来源:互联网 发布:abb机械手编程软件 编辑:程序博客网 时间:2024/05/27 00:40

通过出版社发行杂志,读者订阅杂志,写出Event代码


using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication3{    public class PubEventArgs : EventArgs    {        private readonly string m_ZZName;        private readonly DateTime m_PubTime;        public PubEventArgs(string ZZname,DateTime PubTime)        {            m_ZZName = ZZname;            m_PubTime=PubTime;        }        public string ZZName        {            get { return m_ZZName; }        }        public DateTime PubTime        {            get { return m_PubTime; }        }    }    class Publisher    {        public delegate void PubComputerEventHandler(object sender, PubEventArgs e);        public delegate void PubLifeEventHandler(object sender, PubEventArgs e);        public event PubComputerEventHandler PubComputer;        public event PubLifeEventHandler PubLife;        protected virtual void OnPubComputer(PubEventArgs e)        {            PubComputerEventHandler handler=PubComputer;            if(handler !=null)            {                handler(this,e);            }        }        protected virtual void OnPubLife(PubEventArgs e)        {            PubLifeEventHandler handler=PubLife;            if (handler != null)            {                handler(this, e);            }        }        public void issueComputer(string zzName,DateTime pubTime)        {            Console.WriteLine("发行电脑杂志");            OnPubComputer(new PubEventArgs(zzName,pubTime));        }        public void issueLife(string zzName, DateTime pubTime)        {            Console.WriteLine("发行生活杂志");            OnPubLife(new PubEventArgs(zzName, pubTime));        }    }    class Subscriber    {        private string m_Name;        public Subscriber(string name)        {            m_Name = name;        }        public void Receive(object sender, PubEventArgs e)        {            Console.WriteLine(e.PubTime + " " + m_Name + e.ZZName);        }    }    class Program    {        static void Main(string[] args)        {            Publisher pub = new Publisher();            Subscriber zz = new Subscriber("张三");            Subscriber ls = new Subscriber("李四");            pub.PubComputer+=new Publisher.PubComputerEventHandler(zz.Receive);            pub.PubComputer += new Publisher.PubComputerEventHandler(ls.Receive);            pub.PubLife+=new Publisher.PubLifeEventHandler(ls.Receive);            pub.issueComputer("电脑",Convert.ToDateTime("2014-05-19"));            pub.issueLife("生活", Convert.ToDateTime("2014-05-19"));            Console.ReadKey();        }    }}


0 0
原创粉丝点击