您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何将事件传递给方法?

如何将事件传递给方法?

我的原始答案适合在定义事件的类中使用,但是您已经更新了问题,以反映您希望从定义类之外完成此操作,因此,我已将其删除

只有定义事件的类才能引用该事件使用的隐式委托变量。在该类之外,您只能通过和来访问addremove方法。这意味着您不能直接执行您要问的事情。但是,您可以使用功能方法+=``-=

class A{
    public event EventHandler Event1;

    public void TriggerEvent1(){
        if(Event1 != null)
            Event1(this, EventArgs.Empty);
    }
}

class B{
    static void HandleEvent(object o, EventArgs e){
        Console.WriteLine("Woo-hoo!");
    }

    static void AttachToEvent(Action<EventHandler> attach){
        attach(HandleEvent);
    }

    static void Main(){
        A a = new A();
        AttachToEvent(handler=>a.Event1 += handler);
        a.TriggerEvent1();
    }
}
其他 2022/1/1 18:14:30 有409人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶