带有自定义事件访问器(添加和删除)的C#事件

本文关键字:事件 删除 添加 自定义 访问 | 更新日期: 2023-09-27 17:57:30

有人能向我解释一下自定义事件访问器是如何工作的吗?我在谷歌上读了几篇文章,但仍然无法理解。此外,什么时候使用?

我有我的项目中的以下代码片段。如果有人能向我解释这件事,那就太好了。

private event Action<int> ActivityChanged = delegate {};
event Action<int> IActivityFacade.ActivityChanged
{
    add
    {
        ActivityChanged += value;
        value(GetSelectedActivity()); 
    }
    remove { ActivityChanged -= value; }
}

带有自定义事件访问器(添加和删除)的C#事件

如果不确切地知道现有文档和其他关于自定义事件访问器的引用的哪一部分,就不可能确切地知道你在寻找什么答案。

C#event只是addremove方法(类似于属性的getset方法)。编译器为这些方法提供了默认实现,但如果您有想要自己实现的自定义行为,则可以自己编写方法。在您的示例中,顺便说一句,它不是线程安全的,自定义访问器显然存在,因此新订阅的委托在添加后立即被调用。

如果您需要更多的细节,请改进这个问题,以便清楚地了解您难以理解的自定义事件访问器的具体内容。请务必准确解释您所做的所理解的内容以及您已经引用的文档,这样我们就可以避免在您已经了解的方面浪费时间的过长答案。