C# 委托与事件的DEMO

委托的自我理解:就是观察者与被观察者之间的行为事件。

父亲是被观察者

儿子是观察者

儿子随时观察父亲发出的命令

父亲只发布命令做什么,不关心儿子怎么去做

儿子收到父亲的委托命令,就去执行,

class Program
    {
        static void Main(string[] args)
        {
            Sender sender = new Sender();
            Reciver reciver = new Reciver(sender);
            sender.SendMessage("去买东西");
            Console.Read();
        }
    }
    public delegate void SendMessageEventHandler(string msg);//定义委托
    /// <summary>
    /// 父亲
    /// </summary>
    class Sender
    {
        public event SendMessageEventHandler SendMessageEvent;//定义事件
        public void SendMessage(string msg)
        {
            Console.WriteLine("Sender发布命令:" + msg);
            SendMessageEvent?.Invoke(msg);//调用事件
        }
    }
    /// <summary>
    /// 儿子
    /// </summary>
    class Reciver
    {
        Sender sender;
        public Reciver(Sender sender)
        {
            this.sender = sender;
            sender.SendMessageEvent += new SendMessageEventHandler(ReciveMessage);//订阅事件
        }
        public void ReciveMessage(string msg)
        {
            Console.WriteLine("Reciver执行命令:" + msg);
        }
    }

 

posted @ 2020-03-08 17:31  jasonlai2016  阅读(262)  评论(0编辑  收藏  举报