您的位置:首页 > 编程语言 > C#

【原创】C# 委托与事件的传递与封装案例

2017-03-16 14:57 393 查看
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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: