EventHandler - RaiseEvent
n EventHandler extension method that raises the event event.
public static void Main() { Adder a = new Adder(); a.OnMultipleOfFiveReached += a_MultipleOfFiveReached; int iAnswer = a.Add(4, 3); Console.WriteLine("iAnswer = {0}", iAnswer); iAnswer = a.Add(4, 6); Console.WriteLine("iAnswer = {0}", iAnswer); } static void a_MultipleOfFiveReached(object sender, EventArgs e) { Console.WriteLine("Multiple of five reached!"); } } public class Adder { public event EventHandler OnMultipleOfFiveReached; public int Add(int x, int y) { int iSum = x + y; if ((iSum % 5 == 0) && (OnMultipleOfFiveReached != null)) { //C# Extension Method: EventHandler - RaiseEvent OnMultipleOfFiveReached.RaiseEvent(EventArgs.Empty); } return iSum; }
View Source
using System; public static partial class Extensions { /// <summary> /// An EventHandler extension method that raises the event event. /// </summary> /// <param name="this">The @this to act on.</param> /// <param name="sender">Source of the event.</param> public static void RaiseEvent(this EventHandler @this, object sender) { if (@this != null) { @this(sender, null); } } /// <summary> /// An EventHandler extension method that raises. /// </summary> /// <param name="handler">The handler to act on.</param> /// <param name="sender">Source of the event.</param> /// <param name="e">Event information.</param> public static void Raise(this EventHandler handler, object sender, EventArgs e) { if (handler != null) handler(sender, e); } /// <summary> /// An EventHandler<TEventArgs> extension method that raises the event event. /// </summary> /// <typeparam name="TEventArgs">Type of the event arguments.</typeparam> /// <param name="this">The @this to act on.</param> /// <param name="sender">Source of the event.</param> public static void RaiseEvent<TEventArgs>(this EventHandler<TEventArgs> @this, object sender) where TEventArgs : EventArgs { if (@this != null) { @this(sender, Activator.CreateInstance<TEventArgs>()); } } /// <summary> /// An EventHandler<TEventArgs> extension method that raises the event event. /// </summary> /// <typeparam name="TEventArgs">Type of the event arguments.</typeparam> /// <param name="this">The @this to act on.</param> /// <param name="sender">Source of the event.</param> /// <param name="e">Event information to send to registered event handlers.</param> public static void RaiseEvent<TEventArgs>(this EventHandler<TEventArgs> @this, object sender, TEventArgs e) where TEventArgs : EventArgs { if (@this != null) { @this(sender, e); } } }