c# - C#中如何订阅其他类(class)的事件?

标签 c# events .net-2.0 event-handling

一个简单的场景:一个引发事件的自定义类。我希望在表单中使用此事件并对其使用react。

我该怎么做?

请注意,表单和自定义类是单独的类。

最佳答案

public class EventThrower
{
    public delegate void EventHandler(object sender, EventArgs args) ;
    public event EventHandler ThrowEvent = delegate{};

    public void SomethingHappened() => ThrowEvent(this, new EventArgs());
}

public class EventSubscriber
{
    private EventThrower _Thrower;

    public EventSubscriber()
    {
        _Thrower = new EventThrower();
        // using lambda expression..could use method like other answers on here

        _Thrower.ThrowEvent += (sender, args) => { DoSomething(); };
    }

    private void DoSomething()
    {
       // Handle event.....
    }
}

关于c# - C#中如何订阅其他类(class)的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/913374/

相关文章:

c# - asp.net 用户控件事件传播问题

c# - 为什么 NHibernate 执行插入而不是更新?

android - 动态设置自定义View的OnClickListener

c# - 如何确定绑定(bind)到数据源的数据 GridView 中显示的列的顺序

c# - 在 WPF MVVM 中更新 UI 时如何更改文本颜色

c# - 正确分割 System.Windows.Media.PathGeometry

javascript - Backbone : Reference events to parent object

java - 使用 onclick 或 ID 执行方法?

c# - 将公历日期转换为 Um al Qura 时损失一天

c# - 枚举作为字典键