コード例 #1
0
    //通过DispatchEvent方法来分发一个事件,事件的回调函数采用委托来实现

    /// <summary>
    /// 分发事件
    /// </summary>
    /// <param name="eventKey">事件Key</param>
    public void DispatchEvent(string eventKey, params object[] args)
    {
        if (!NotifyDic.ContainsKey(eventKey))
        {
            return;
        }
        OnNotifyHandler handler = NotifyDic[eventKey];

        handler(args);
    }
コード例 #2
0
    /// <summary>
    /// 注册事件
    /// </summary>
    /// <param name="EventName">事件Key</param>
    /// <param name="handler">事件监听器</param>

    public void RegistEvent(string EventName, OnNotifyHandler handler)
    {
        if (!NotifyDic.ContainsKey(EventName))
        //如果不存在,就添加新的数据结构进入缓存
        {
            NotifyDic.Add(EventName, handler);
        }
        else
        {
            NotifyDic[EventName] += handler;
        }
        //已存在,就添加监听到数据结构的委托上
    }
コード例 #3
0
    /// <summary>
    /// 移除事件
    /// </summary>
    /// <param name="EventName">事件Key</param>
    /// <param name="handler">事件监听器</param>
    public void UnRegistEvent(string EventName, OnNotifyHandler handler)
    {
        if (handler == null)
        {
            return;
        }

        if (NotifyDic.ContainsKey(EventName))
        //如果存在
        {
            NotifyDic[EventName] -= handler;
            //移除监听
            if (NotifyDic[EventName] == null)
            //该类型是否还有回调,如果没有,移除
            {
                NotifyDic.Remove(EventName);
            }
        }
    }
コード例 #4
0
ファイル: BaseUIForm.cs プロジェクト: 18813298160/MyDesign
 /// <summary>
 /// 注销消息
 /// </summary>
 public void RemoveEvent(string eventName, OnNotifyHandler handler)
 {
     NotifyCenter.instance.UnRegistEvent(eventName, handler);
 }
コード例 #5
0
ファイル: BaseUIForm.cs プロジェクト: 18813298160/MyDesign
 /// <summary>
 /// 注册消息
 /// </summary>
 public void AddEvent(string eventName, OnNotifyHandler handler)
 {
     NotifyCenter.instance.RegistEvent(eventName, handler);
 }