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");
编程之余,多多思考,多多学习,有助于开发智商啊
本文只是记录学习心得,如果有误请提示博主加以修正。。。
谢谢您那么帅气,还能看完小主的文言文!

浙公网安备 33010602011771号