/// <summary> /// 添加监听 [给监听者使用,想监听了就添加,不需要监听的就不用管] /// </summary> /// <param name="opcode"></param> /// <param name="handler"></param> public void AddEventListener(K key, OnActinHandlerOneParm handler) { if (dic.ContainsKey(key)) { dic[key].Add(handler); } else { List <OnActinHandlerOneParm> lsHandler = new List <OnActinHandlerOneParm>(); lsHandler.Add(handler); dic[key] = lsHandler; } }
/// <summary> /// 移除监听 [给监听者使用,如果有监听某条消息必须有移除,否则死人还能收到消息] /// </summary> /// <param name="protoID"></param> /// <param name="handler"></param> public void RemoveMsgEventListener(K key, OnActinHandlerOneParm handler) { if (dic.ContainsKey(key)) { List <OnActinHandlerOneParm> lsHandler = dic[key]; if (lsHandler.Count > 0) { for (int i = 0; i < lsHandler.Count; i++) { if (lsHandler[i] == handler) { lsHandler.RemoveAt(i); if (lsHandler.Count == 0) { dic.Remove(key); return; } } } } } }