//////事件
//事件是一种特殊的委托
//先定义委托
//服务器端类
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("新的推送");