当前位置:网站首页>事件系统(二)多播事件
事件系统(二)多播事件
2022-04-23 06:27:00 【老少年】
先创建字典保存所有的事件
Dictionary<EPlayerEvt, List<Action<object, object[]>>> _phList = new Dictionary<EPlayerEvt, List<Action<object, object[]>>>();
1.事件添加
public void addEventHandler(EPlayerEvt eventID, Action<object, object[]> handler)
{
if (_phList == null) return;
if (!_phList.ContainsKey(eventID)){
_phList[eventID] = new List<Action<object, object[]>>();
}
var funcList = _phList[eventID];
if (funcList == null) return;
funcList.Add(handler);
}
2.事件删除
public void delEventHandler(EPlayerEvt eventID, Action<object, object[]> handler)
{
if (_phList.ContainsKey(eventID))
{
var funcList = _phList[eventID];
var action = funcList.Find(i=> i == handler);
if (action != null)
{
funcList.Remove(action);
}
}
}
3.事件触发
public void fireEvent(EPlayerEvt eventID, object sender, object[] args)
{
if (_phList.ContainsKey(eventID))
{
var actList = _phList[eventID];
if (actList != null)
{
for (int i = 0; i < actList.Count; i++)
{
var item = actList[i];
if (item != null)
{
item(sender, args);
}
}
}
}
}
4.删除所有事件
public void delAllEventHandler(EPlayerEvt eventID)
{
if (_phList.ContainsKey(eventID))
{
var funcList = _phList[eventID];
if (funcList != null)
{
funcList.Clear();
}
}
}
5.重置事件系统
public void Reset()
{
if (_phList == null) return;
_phList.Clear();
_phList = null;
}
版权声明
本文为[老少年]所创,转载请带上原文链接,感谢
https://blog.csdn.net/laoshaonian/article/details/89330799
边栏推荐
- Two threads print odd and even numbers interactively
- Visualization Road (IX) detailed explanation of arrow class
- ABAP 实现发布RESTful服务供外部调用示例
- 游戏辅助脚本开发之旅
- Solutions to common problems in visualization (VII) solutions to drawing scale setting
- 定位、修饰样式
- Processing of common dependency module
- 取得所有点列表中的最大值GetMaxPoint
- 2. Restricted query
- 反转链表练习
猜你喜欢

How to judge whether a point is within a polygon (including complex polygons or a large number of polygons)

Simple random roll call lottery (written under JS)

SAP PI / Po rfc2restful Publishing RFC interface as restful examples (proxy indirect)

反思 | Android 音视频缓存机制的系统性设计

对js中argumens的简单理解

Super classic & Programming Guide (red and blue book) - Reading Notes

SAP ECC连接SAP PI系统配置

SAP PI/PO Soap2Proxy 消费外部ws示例

SAP PI/PO rfc2RESTful 发布rfc接口为RESTful示例(Proxy间接法)

SAP TRANSLATE使用数据对象掩码示例
随机推荐
14. Transaction processing
SAP RFC_CVI_EI_INBOUND_MAIN BP主数据创建示例(仅演示客户)
6. Aggregation function and grouping statistics
js之DOM学习三种创建元素的方式
Page dynamic display time (upgraded version)
二叉树的深度
[self motivation series] what really hinders you?
颜色转换公式大全及转换表格(31种)
取得所有点列表中的最大值GetMaxPoint
State synchronization and frame synchronization
SAP SALV14 后台输出SALV数据可直接保存文件,发送Email(带排序、超链接、筛选格式)
Date对象(js内置对象)
12. Constraints
Nacos / sentinel gateway current limiting and grouping (code)
js之DOM事件
面经总结2
instanceof的实现原理
9. Common functions
Common DOS commands
C# 多个矩形围成的多边形标注位置的问题