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

  

編程之餘,多多思考,多多學習,有助於開發智商啊學習

相關文章
相關標籤/搜索