/// <summary> /// 移除指定类型的全部事件监听 /// </summary> /// <param name="str"></param> public virtual void RemoveListeners(ListenerEventType eventName) { if (_listners != null && _listners.ContainsKey(eventName.ToString())) { _listners.Remove(eventName.ToString()); } }
/// <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(); } } }
/// <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); } } } }
/// <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); } }
public ListenerLogEvent(ListenerEventType eventType) { this.EventType = eventType; }