精简的EventManager
来源:互联网 发布:如何做网络黄牛 编辑:程序博客网 时间:2024/05/17 06:47
using System;using System.Collections.Generic;public abstract class GameEvent{}public static class EventManager{ private abstract class EventListerner { public abstract void Trigger(GameEvent Msg); } private class EventListnerImpl<T> : EventListerner where T : GameEvent { public event Action<T> OnEvent = null; public override void Trigger(GameEvent Msg) { if (OnEvent != null) { OnEvent((T) Msg); } } } private static readonly Dictionary<string, EventListerner> EventList_ = new Dictionary<string, EventListerner>(); public static void Send<T>(T Event) where T : GameEvent { string EventName = typeof(T).Name; if (EventList_.ContainsKey(EventName)) { ((EventListnerImpl<T>)EventList_[EventName]).Trigger(Event); } } public static void Register<T>(Action<T> Callback) where T : GameEvent { string EventName = typeof(T).Name; if (!EventList_.ContainsKey(EventName)) { EventList_.Add(EventName, new EventListnerImpl<T>()); } ((EventListnerImpl<T>) EventList_[EventName]).OnEvent += Callback; } public static void UnRegister<T>(Action<T> Callback) where T : GameEvent { string EventName = typeof(T).Name; if (EventList_.ContainsKey(EventName)) { ((EventListnerImpl<T>)EventList_[EventName]).OnEvent -= Callback; } }}
0 0
- 精简的EventManager
- EventManager
- Zend Framework 2 中的EventManager的使用方法
- JFace中找不到org/eclipse/core/runtime/EventManager的解决
- Zend framework 2牵涉到的几个概念(serviceManager,eventManager)
- Hibernate 官方文档(入门) 第一章 1.3 - The EventManager web application 简单的web应用
- WinXP的优化精简
- 不算新的精简
- 写精简的shellcode
- 精简的jquery
- ffmpeg的精简
- 精简的a*算法
- ffmpeg的精简
- 精简你的jQuery
- 精简你的jQuery
- ffmpeg的精简
- ffmpeg的精简
- 精简版的textEditor
- Android实现VR全景立体化显示以及优化
- 列表
- 基于fiddler的APP抓包及服务端模拟
- TTY之struct tty_buffer
- 用场景法剖析需求问题
- 精简的EventManager
- maven pom.xml节点描述
- A股-进阶-3分钟学会如何建立自己的股票交易系统
- nihao
- 逻辑斯蒂回归梯度下降法推导
- 微信公众号如何无限制的定向推送消息--模板消息的应用
- 如何快速转载CSDN上的精华?
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- android之存储篇_SQLite数据库