C#的Event类. nodejs的Event风格

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.18408
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using LitJson;

namespace TSGame
{
	public class TSEvent
	{
		public delegate void EventHandler(JsonData data);
		static public TSEvent singleTon = new TSEvent();

		public Dictionary<string, EventHandler> eventMap = new Dictionary<string, EventHandler>();

		public TSEvent ()
		{

		}

		public void RegistEvent(string msg, EventHandler eh)
		{
			if (eventMap.ContainsKey(msg))
			{
				eventMap[msg] += eh;
			}
			else
			{
				eventMap.Add(msg, eh);
			}
		}

		public void RemoveRegistEvent(string msg, EventHandler eh)
		{
			if (eventMap.ContainsKey(msg))
			{
				eventMap[msg] -= eh;
			}
		}

		public void SendMessage(string msg, JsonData json)
		{
			eventMap[msg].Invoke(json);
		}
	}
}


 

用起来非常简单. 比方要监听回来的C_GetGW消息.那么就下面这写法.nodejs的 风格.

TSEvent.singleTon.RegistEvent("C_GetGW", 需要监听的函数);

发消息就要 

TSEvent.singleTon.SendMessage("C_GetGW", JSON数据);


 





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值