• C#中的事件委托


    C#中的事件与委托,对于我们写业务代码的程序员来说不常用,这就会导致经常忘记,这边再温习一下。

        //委托
        public delegate void MyEventDelegateHandler(string msg);
    
        //发布者
        public class MyService
        {
            public event MyEventDelegateHandler hanldes;
    
            public void Send(string msg)//发布者的发布方法
            {
                Console.WriteLine("发布者发布信息:" + msg);
                if (hanldes != null)
                    hanldes(msg);//转给订阅者
            }
        }
        //订阅者
        public class MyClient
        {
            public void Receive(string msg)
            {
                Console.WriteLine("订阅者接收到信息:" + msg);
            }
        }

    调用方法

      MyService service = new MyService();
                MyClient client = new MyClient();
                service.hanldes += new MyEventDelegateHandler(client.Receive);//添加事件
                service.hanldes -= client.Receive;//删除事件
                service.hanldes+=new MyEventDelegateHandler(client.Receive);
                service.hanldes += (string msg) => Console.WriteLine("匿名接收者接收到信息:" + msg);          
                service.Send("消息是SBSBSB");
    
                Console.WriteLine();
    
                //C#中定义好的委托 还有Func(带返回值的)
                Action<string> action = new Action<string>(client.Receive);
                action("huage");
    
                action = (string msg) => client.Receive(msg);
                action("huage");    
    

      

    编程之余,多多思考,多多学习,有助于开发智商啊

  • 相关阅读:
    LeetCode 4 :Majority Element
    LeetCode 3 :Min Stack
    Oracle操作4
    plsql安装教程
    java Date与String互相转化
    Oracle操作3
    Oracle操作2
    Oracle操作
    Oracle11g修改密码
    Visual Studio2013完全卸载
  • 原文地址:https://www.cnblogs.com/huage-1234/p/11661734.html
Copyright © 2020-2023  润新知