public static TEventEmitter RemoveListener<TEventEmitter, T1, T2>( [DisallowNull] this TEventEmitter eventEmitter, [DisallowNull] string eventName, [DisallowNull] Action<T1, T2> listener) where TEventEmitter : IEventEmitter<TEventEmitter> { var wrapper = ListenerWrapper.GetListenerWrapper(listener); wrapper.Decrement(); return eventEmitter.RemoveListener(eventName, wrapper.Process); }
public static TEventEmitter Once<TEventEmitter, T1, T2, T3, T4, T5, T6, T7, T8>( [DisallowNull] this TEventEmitter eventEmitter, [DisallowNull] string eventName, [DisallowNull] Action<T1, T2, T3, T4, T5, T6, T7, T8> listener) where TEventEmitter : IEventEmitter<TEventEmitter> => eventEmitter.Once(eventName, ListenerWrapper.GetListenerWrapper(listener).Increment().Process);
public static TEventEmitter Once<TEventEmitter>( [DisallowNull] this TEventEmitter eventEmitter, [DisallowNull] string eventName, [DisallowNull] Delegate listener) where TEventEmitter : IEventEmitter<TEventEmitter> => eventEmitter.Once(eventName, ListenerWrapper.GetListenerWrapper(listener).Increment().Process);