C# 高效简洁的事件系统

本文分享了C#中一种高效简洁的事件系统实现,强调其能降低系统耦合度并提供快速调用。通过定义事件参数类,如EventArgs的派生类,每个事件类型对应一个类,增强可读性和易用性。示例展示了如何添加事件接收方法和触发事件。
摘要由CSDN通过智能技术生成

  事件系统是个好东西,不仅调用方便,而且能最大程度的降低系统各部分的耦合度. 网上有关这方面的东西很多很多,我也用过不少,最近发现一个比较优秀的,即快速(不用遍历大串的方法列表)又简洁(代码很少). 分享上来和新手同学们共勉.

具体实现如下:


1.先定义事件参数类: EventArgs 是基类,不建议直接使用,因为通用的东西针对性不强,容易混乱(特别是找bug 的时候)... MyEvent 的具体的派生类,建议的使用方法就是每个种类的事件派生一个类,比如UIEvent,ServerEvent神马的,根据具体作用来命名.

    /// <summary>
    /// 事件参数基类
    /// </summary>
    public class EventArgs
    {
        public object Parameter;
    }

    /// <summary>
    /// 自定义事件参数
    /// </summary>
    public class MyEvent : EventArgs
    {
        public int ID;
        public string Name; // ...etc 
    }


2. 事件管理类: 可以看出是一个单例类,世界各地都能直接调用. _delegates负责保存所有事件接收方法,事件被按类型存在里面,同一个类型无论几条记录都只占一个项(所以不用遍历大串的方法列表)

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值