201710042130->事件派发eventdispatch

本文介绍了一种基于字符串键值的事件分发机制,通过使用委托(delegate)和字典来实现事件的注册、移除及触发。此方法能够有效地管理不同对象之间的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:分发各种事件到已经注册好事件的对象上边

关键点:

1.利用string,delegate的字典缓存好事件

2.搜索key值返回的delegate value去执行所有注册在委托下的事件

3.事件字典具备增删查功能

详细代码:

public delegate void ObjectParamDelegate(object obj);
    public class BaseEvent
    {
        public void OnInitialiaze()
        {
            delegates = new Dictionary<string, ObjectParamDelegate>();
        }
        public void OnDestory()
        {
            delegates.Clear();
            delegates = null;
        }
        public void AddEvent(string key, ObjectParamDelegate method)
        {
            if (!delegates.ContainsKey(key))
            {
                delegates.Add(key, method);
            }
            else
            {
                delegates[key] += method;
            }
        }
        public void RemoveEvent(string key)
        {
            if (delegates.ContainsKey(key))
            {
                delegates.Remove(key);
            }
        }
        public void DispatchEvent(string key, object obj = null)
        {
            if (delegates.ContainsKey(key))
            {
                delegates[key](obj);
            }
        }
        public Dictionary<string, ObjectParamDelegate> delegates;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值