public static void Main()
EventHandler @event = EventHandlerHelper.Once((object sender, EventArgs e) =>
Console.WriteLine("Somente uma vez");
@event.Invoke(null, null);
@event.Invoke(null, null);
public static class Functional
public static Action<T1, T2> Once<T1, T2>(Action<T1, T2> action)
return (T1 arg1, T2 arg2) => {
public static class EventHandlerHelper
public static EventHandler Once(Action<object, EventArgs> action)
return Functional.Once(action).Invoke;