示例#1
0
    public static void Main()
    {
        var raiser  = new EventRaiser();
        var handler = new Handler();
        //void delegate with no parameters
        string eventName = "SomethingHappened";
        var    eventinfo = raiser.GetType().GetEvent(eventName);

        eventinfo.AddEventHandler(raiser, EventProxy.Create(eventinfo, handler.HandleEvent));
        //void delegate with one parameter
        string eventName2 = "SomethingHappenedWithArg";
        var    eventInfo2 = raiser.GetType().GetEvent(eventName2);

        eventInfo2.AddEventHandler(raiser, EventProxy.Create <int>(eventInfo2, handler.HandleEventWithArg));

        //or even just:
        eventinfo.AddEventHandler(raiser, EventProxy.Create(eventinfo, () => Console.WriteLine("!")));
        eventInfo2.AddEventHandler(raiser, EventProxy.Create <int>(eventInfo2, i => Console.WriteLine(i + "!")));
        raiser.RaiseEvents();
    }
示例#2
0
    public static void attachEvent()
    {
        var    raiser    = new EventRaiser();
        var    handler   = new Handler();
        string eventName = "SomethingHappened";
        var    eventinfo = raiser.GetType().GetEvent(eventName);

        eventinfo.AddEventHandler(raiser, EventProxy.Create(eventinfo, handler.HandleEvent));

        //or even just:
        eventinfo.AddEventHandler(raiser, EventProxy.Create(eventinfo, () => Console.WriteLine("!")));
    }