我是靠谱客的博主 拉长马里奥,最近开发中收集的这篇文章主要介绍c# Action使用 事件 订阅与发布,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//服务器
    public class Server
    {
        //服务器发布的事件
        public event Action<string> MyEvent;
        public void Send(string msg)
        {
            if (MyEvent != null)
            {
                Console.WriteLine("Server推送消息:" + msg);
                MyEvent(msg);
            }
        }
    }
 
    //客户端
    public class Client
    {
        public Client(Server s)
        {
            //客户端订阅
            s.MyEvent += Receive;
        }
 
        public void Receive(string msg)
        {
            Console.WriteLine("Client收到了通知:" + msg);
        }
    }

static void Main(){

      Server s = new Server();

     Client c = new Client(s);

      s.Send("Hello");

     Console.ReadKey();

}

class Program
    {
        public static void Main(string[] args)
        {
            //实例化对象
            Mom mom = new Mom();
            Dad dad = new Dad();
            Child child = new Child();
            
            //将爸爸和孩子的Eat方法注册到妈妈的Eat事件
            //订阅妈妈开饭的消息
            mom.Eat += dad.Eat;
            mom.Eat += child.Eat;
            
            //调用妈妈的Cook事件
            mom.Cook();
            
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
    
    public class Mom
    {
        //定义Eat事件,用于发布吃饭消息
        public event Action Eat;
        
        public void Cook()
        {
            Console.WriteLine("妈妈 : 饭好了");
            //饭好了,发布吃饭消息
            Eat?.Invoke();
        }
    }
    
    public class Dad
    {
        public void Eat()
        {
            //爸爸去吃饭
            Console.WriteLine("爸爸 : 吃饭了。");
        }
    }
    
    public class Child
    {
        public void Eat()
        {
            //熊孩子LOL呢,打完再吃
            Console.WriteLine("孩子 : 打完这局再吃。");
        }
    }

最后

以上就是拉长马里奥为你收集整理的c# Action使用 事件 订阅与发布的全部内容,希望文章能够帮你解决c# Action使用 事件 订阅与发布所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部