using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NetworkCommsDotNet;
using NetworkCommsDotNet.Connections;
namespace DelegateDeliveryExample
{
// 第⼀步:声明⼀个委托
public delegate void NCMessageHandler(PacketHeader header, Connection connection, string message);
public static class Program
{
// 第⼆步:声明⼀个委托变量
public static event NCMessageHandler msgHandler;
static void Main(string[] args)
{
// 第三步:将⽅法作为参数进⾏传递
NCIncomingPacketHandler(MsgHandler);
}
public static void MsgHandler(PacketHeader header, Connection connection, string message)
{
Console.WriteLine(message);
}
public static void NCIncomingPacketHandler(NCMessageHandler handler)
{
// 第四步:将传进来的⽅法注册到委托变量中
msgHandler += handler;
// 第五步:调⽤消息处理函数
NetworkComms.AppendGlobalIncomingPacketHandler<string>("Message", ProcessIncomingMessage);
}
public static void ProcessIncomingMessage(PacketHeader header, Connection connection, string message)
{
// 第六步:执⾏委托变量中注册过的⽅法
msgHandler(header, connection, message);
}
}
}