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");
編程之餘,多多思考,多多學習,有助於開發智商啊學習