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

时间:2016-07-17 04:45:11

标签: c#

有人可以向我解释自定义事件访问器的工作原理吗? 我在谷歌上看过几篇文章,但仍然无法理解。还有什么时候使用它?

我的项目中有以下代码段。如果有人可以向我解释这将是非常好的。

private event Action<int> ActivityChanged = delegate {};

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

1 个答案:

答案 0 :(得分:1)

如果不确切知道现有文档的哪些部分以及有关自定义事件访问器的其他参考资料具体您不理解,则无法确切知道您正在寻找什么样的答案。

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

如果您需要更多详细信息,请改进问题,以便明确了解您无法理解的自定义事件访问器的具体内容。请务必准确解释您的理解以及您已经引用的文档,这样我们就可以避免过长的答案,从而浪费您已经了解的方面。