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");    

  

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM