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