using System; namespace Wayne.Lib { /// <summary> /// Contains extension methods for firing events. /// </summary> public static class Events { /// <summary> /// Fires the event if it is not null. /// </summary> /// <typeparam name="TEventArgs"></typeparam> /// <param name="eventHandler"></param> /// <param name="sender"></param> /// <param name="eventArgs"></param> public static void Fire<TEventArgs>(this EventHandler<TEventArgs> eventHandler, object sender, TEventArgs eventArgs) where TEventArgs : EventArgs { if (eventHandler != null) { eventHandler(sender, eventArgs); } } /// <summary> /// Fires the event if it is not null. /// </summary> /// <param name="eventHandler"></param> /// <param name="sender"></param> /// <param name="eventArgs"></param> public static void Fire(this EventHandler eventHandler, object sender, EventArgs eventArgs) { if (eventHandler != null) { eventHandler(sender, eventArgs); } } /// <summary> /// Fires the action if not null /// </summary> /// <param name="action"></param> public static void Fire(this Action action) { if (action != null) { action(); } } /// <summary> /// Fires the action if not null /// </summary> /// <param name="action"></param> /// <param name="t"></param> public static void Fire<T>(this Action<T> action, T t) { if (action != null) { action(t); } } /// <summary> /// Fires the action if not null /// </summary> /// <param name="action"></param> /// <param name="t1"></param> /// <param name="t2"></param> public static void Fire<T1, T2>(this Action<T1, T2> action, T1 t1, T2 t2) { if (action != null) { action(t1, t2); } } /// <summary> /// Fires the action if not null /// </summary> /// <param name="action"></param> /// <param name="t1"></param> /// <param name="t2"></param> /// <param name="t3"></param> public static void Fire<T1, T2, T3>(this Action<T1, T2, T3> action, T1 t1, T2 t2, T3 t3) { if (action != null) { action(t1, t2, t3); } } } }