C#事件

//////事件
//事件是一种特殊的委托
//先定义委托
//服务器端类
public delegate void DelSendMsg(string msg);
public class MobileServer
{
    //事件是委托的实例对象
    public static event DelSendMsg sendEvent;
    //将服务器端的消息推送给客户端的方法
    public void SendMsg(string msg)
    {
        Console.WriteLine("服务器给客户端推送消息");
        //如果是客户端已经订阅了该事件
        if(sendEvent!=null)
        {
            sendEvent(msg);//事件的执行,关联到具体的事件绑定的方法执行
        }
    }
}
//客户端类
public class MobileClient
{
    //客户端订阅服务器端推送消息的功能
    public void DingYue()
    {
        Console.WriteLine("手机客户端订阅了服务器端的推送消息");
        mobileServer.sendEvent += new DelSendMsg(mobileServer_sendEvent);  //事件不为空
    }
    void mobileServer sendEvent(string msg)
    {
        Console.WriteLine("这是客户端接收到服务器端的推送消息"+msg);  //事件所关联的方法
    }
}




//main
MobileServer moserver = new MobileServer();
MobileClient moclient = new MobileClient();
moclient.DingYue();//客户端订阅推送消息
mobileServer.SendMsg("新的推送");
原文地址:https://www.cnblogs.com/god-for-speed/p/11445065.html