コード例 #1
0
    public static THandler Create(EventHandler <TArgs> handler)
    {
        var helper             = new SingleUseEventHandler <TArgs, THandler>(handler);
        EventHandler <TArgs> h = helper.InvokeIfFirstTime;

        return((THandler)(object)Delegate.CreateDelegate(typeof(THandler), h.Target, h.Method));
    }
コード例 #2
0
    static void Main(string[] args)
    {
        MyEvent += SingleUseEventHandler <AssemblyLoadEventArgs, AssemblyLoadEventHandler>
                   .Create(Load);

        foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
        {
            Console.WriteLine("Raising event for " + assembly.GetName().Name);
            MyEvent(null, new AssemblyLoadEventArgs(assembly));
        }
    }