static public void Dispatch <T1, T2, T3>(string evt, T1 param1, T2 param2, T3 param3) { HashSet <Delegate> hashSet; if (!callbackFuncs.TryGetValue(evt, out hashSet)) { return; } HashSet <Delegate> .Enumerator em = hashSet.GetEnumerator(); do { CALLBACK_FUNC_3 <T1, T2, T3> handler = (em.Current as CALLBACK_FUNC_3 <T1, T2, T3>); if (handler == null) { continue; } handler.Invoke(param1, param2, param3); } while (em.MoveNext()); }
static public void RemoveListener <T1, T2, T3>(string evt, CALLBACK_FUNC_3 <T1, T2, T3> func) { TryRemoveDelegate(evt, func); }
static public void AddListener <T1, T2, T3>(string evt, CALLBACK_FUNC_3 <T1, T2, T3> func) { TryAddDelegate(evt, func); }