c# - 订阅子类(class)的事件?

标签 c# events

我以为我了解 C# 中的事件。如果您不想直接调用方法而不是为自定义实现留出位置,有时会使用它们。但是什么时候?

程序员 A 编写 A 类,程序员 B 编写 B 类。A 类应该引发 B 类注册并使用react的事件,但 A 类对 B 类用于服务的函数一无所知。

你能给我提供一个简单的例子吗?

最佳答案

public class A
{
    private readonly B _B = new B();

    public class A() 
    {
        _B.MyEvent += MyEventHandler; 
    }

    private void MyEventHandler(object sender, EventArgs e)
    {
        // Handle
    }
}

public class B
{
    public event EventHandler MyEvent;

    // Call this when you raise the event so you don't 
    // need check if MyEvent is null.
    private void OnMyEvent() 
    {
        if (MyEvent != null) // If this is null we have no subscribers.
        {
            MyEvent(this, EventArgs.Empty);    
        }
    }
}

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

相关文章:

c# - 在 GridView 的 TemplateField 中获取 Html 输入的值

c# - 如何为 sql 中的 NULL/空值列生成带有打开和关闭标记的 XML?

javascript - Mootools 覆盖窗口滚动

silverlight - 如何在 Silverlight 中获取全局 MouseMove 和 KeyDown 事件

javascript - DOM 级别 3 规范的事件组章节发生了什么?

c# - 在 ASP.Net 5 中配置 Azure Blob 访问

c# - 在部署时从 Azure Function 获取 Azure Function key ?

c# - 如何在asp.net中播放音频文件

javascript - 防止浏览器对 keydown 事件使用react,但不取消该事件

events - 如何通过自定义指令修改 v-model 属性的值?