/// <summary> /// 注册消息处理 /// </summary> /// <param name="self">this扩展,this必须是 ImsgReceiver 的实例</param> /// <param name="MsgType"> 消息名 </param> /// <param name="Callback"> 回调函数,无返回值,支持任意类型,任意长度的参数 </param> public static void AddMessageHandler(this IMsgReceiver self, ECustomMessageType MsgType, DelegateCustomMessage Callback) { if (MsgType == ECustomMessageType.NULL) { CLOG.E("error msg type is {0}", MsgType); return; } if (Callback == null) { CLOG.E("none call back!!", MsgType); return; } if (!m_MsgHandlerList.ContainsKey(MsgType)) { // 如果不包含这个Key,那么就创建他 m_MsgHandlerList[MsgType] = new List <LogicMsgHandler>(); } // 防止反复注册 foreach (var item in m_MsgHandlerList[MsgType]) { if (item.m_Receiver == self && item.m_Callback == Callback) { return; } } // 注册 m_MsgHandlerList[MsgType].Add(new LogicMsgHandler(self, Callback)); }
public LogicMsgHandler(IMsgReceiver receiver, DelegateCustomMessage Callback) { m_Receiver = receiver; m_Callback = Callback; }