/// <summary> /// 注册事件 /// </summary> /// <param name="onReceive"></param> /// <typeparam name="T"></typeparam> public static void Register <T>(System.Action <T> onReceive) { var type = typeof(T); IRegisterations registerations = null; if (mTypeEventDict.TryGetValue(type, out registerations)) { var reg = registerations as Registerations <T>; reg.OnReceives += onReceive; } else { var reg = new Registerations <T>(); reg.OnReceives += onReceive; mTypeEventDict.Add(type, reg); } }
public IDisposable RegisterEvent<T>(Action<T> onReceive) { var type = typeof(T); IRegisterations registerations = null; if (mTypeEventDict.TryGetValue(type, out registerations)) { var reg = registerations as Registerations<T>; reg.OnReceives += onReceive; } else { var reg = new Registerations<T>(); reg.OnReceives += onReceive; mTypeEventDict.Add(type, reg); } return new TypeEventUnregister<T> {OnReceive = onReceive}; }
/// <summary> /// 注册事件 /// </summary> public static void Register <T>(System.Action <T> onReceive) { var type = typeof(T); IRegisterations registerations = null; // 已经有同一个类型的注册了 // 只需要在增加委托即可 if (mTypeEventDict.TryGetValue(type, out registerations)) { var reg = registerations as Registerations <T>; reg.OnRecieves += onReceive; } // 从没注册过该类型 // 需要创建一个该类型的注册对象 else { var reg = new Registerations <T>(); reg.OnRecieves += onReceive; mTypeEventDict.Add(type, reg); } }