zoukankan      html  css  js  c++  java
  • 如何编写属于自己的事件集合

    public class MyEvent
    {
    /// <summary>
    /// 定义某一类事件的名称
    /// </summary>
    private const string EventName = "MyEvent";
    /// <summary>
    /// 定义某一类事件的名称
    /// </summary>
    private const string EventName1 = "MyEvent1";
    /// <summary>
    /// 事件集合
    /// </summary>
    private readonly Dictionary<string, List<object>> EventDic = new Dictionary<string, List<object>>();

    /// <summary>
    /// 定义事件代理句柄
    /// </summary>
    /// <param name="obj"></param>
    public delegate void MyHandler(object obj);
    /// <summary>
    /// 定义事件代理句柄
    /// </summary>
    /// <param name="obj"></param>
    public delegate void MyHandler1(string obj);

    public event MyHandler MyEvents
    {
    add
    {
    EventDic[EventName].Add(value);
    }
    remove
    {
    EventDic[EventName].Remove(value);
    }
    }
    public event MyHandler1 MyEvents1
    {
    add
    {
    EventDic[EventName1].Add(value);
    }
    remove
    {
    EventDic[EventName1].Remove(value);
    }
    }

    public MyEvent()
    {
    EventDic.Add(EventName, new List<object>());//添加一类事件集合
    EventDic.Add(EventName1, new List<object>());//添加一类事件集合
    }

    public void Run()
    {
    if (EventDic[EventName].Count == 0)
    return;
    foreach (object obj in EventDic[EventName])
    {
    (obj as MyHandler)(1);
    }
    }
    public void Run1()
    {
    if (EventDic[EventName1].Count == 0)
    return;
    foreach (object obj in EventDic[EventName1])
    {
    (obj as MyHandler1)("");
    }
    }

    }
  • 相关阅读:
    [C#] 等待启动的进程执行完毕
    C# 、winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示
    Mysql 备份
    Mysql 慢查询日志配置
    Mysql 忘记密码处理配置
    PHP-FPM 慢执行日志、网站隔离配置
    PHP-FPM 设置多pool、配置文件重写
    Nginx 代理配置
    Nginx 301与302配置
    Nginx URL跳转
  • 原文地址:https://www.cnblogs.com/magic_evan/p/2306141.html
Copyright © 2011-2022 走看看