/// <summary> /// 发送事件 /// </summary> /// <typeparam name="T"></typeparam> public static void Send <T>() where T : new() { var type = typeof(T); IRegisterations registerations = null; if (mTypeEventDict.TryGetValue(type, out registerations)) { var reg = registerations as Registerations <T>; reg.OnReceives(new T()); } }
/// <summary> /// 注销事件 /// </summary> /// <param name="onReceive"></param> /// <typeparam name="T"></typeparam> public static void UnRegister <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; } }
public void SendEvent <T>(T e) { var type = typeof(T); IRegisterations registrations = null; if (mTypeEventDict.TryGetValue(type, out registrations)) { var reg = registrations as Registerations <T>; reg.OnReceives(e); } }
/// <summary> /// 发送事件 /// </summary> public static void Send <T>(T t) { var type = typeof(T); IRegisterations registerations = null; if (mTypeEventDict.TryGetValue(type, out registerations)) { var reg = registerations as Registerations <T>; reg.OnRecieves(t); } }
/// <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); } }