コード例 #1
0
 /// <summary>
 /// 移除指定类型的全部事件监听
 /// </summary>
 /// <param name="str"></param>
 public virtual void RemoveListeners(ListenerEventType eventName)
 {
     if (_listners != null && _listners.ContainsKey(eventName.ToString()))
     {
         _listners.Remove(eventName.ToString());
     }
 }
コード例 #2
0
    /// <summary>
    /// 派发事件(不带参)
    /// </summary>
    /// <param name="eventName"></param>
    /// <param name="eventParam"></param>
    public virtual void DispatchEvent(ListenerEventType eventName)
    {
        string key = eventName.ToString();

        if (_listners != null && _listners.ContainsKey(key))
        {
            LinkedList <Action> list = _listners[key];
            for (LinkedListNode <Action> handler = list.First; handler != null; handler = handler.Next)
            {
                handler.Value();
            }
        }
    }
コード例 #3
0
    /// <summary>
    /// 移除指定类型的单个事件监听(不带参)
    /// </summary>
    /// <param name="eventName"></param>
    /// <param name="handler"></param>
    public virtual void RemoveListener(ListenerEventType eventName, Action handler)
    {
        string key = eventName.ToString();

        if (_listners != null)
        {
            if (_listners.ContainsKey(key))
            {
                LinkedList <Action> handlers = _listners[key];
                handlers.Remove(handler);
                if (handlers.Count == 0)
                {
                    _listners.Remove(key);
                }
            }
        }
    }
コード例 #4
0
    /// <summary>
    /// 添加事件监听(不带参)
    /// </summary>
    /// <param name="eventName"></param>
    /// <param name="handler"></param>
    public void AddListener(ListenerEventType eventName, Action handler)
    {
        string key = eventName.ToString();

        if (_listners == null)
        {
            _listners = new Dictionary <string, LinkedList <Action> >();
        }
        if (_listners.ContainsKey(key))
        {
            _listners[key].AddLast(handler);
        }
        else
        {
            LinkedList <Action> handlers = new LinkedList <Action>();
            handlers.AddLast(handler);
            _listners.Add(key, handlers);
        }
    }
コード例 #5
0
 public ListenerLogEvent(ListenerEventType eventType)
 {
     this.EventType = eventType;
 }