路由事件语法

时间:2013-12-18 22:38:20

标签: c# routed-events

我对路由事件有疑问,我在一些文档中看到,当我们定义自己的自定义事件时,我们使用以下代码添加和删除处理程序:

public event RoutedEventHandler CustomClick
{
    add { AddHandler(CustomClickEvent, value); }

    remove { RemoveHandler(CustomClickEvent, value); }
}

但我的观点是,这既不像Constructor语法,也不是Property初始化语法!它也不是属性get / set语法(尽管它看起来与此类似)。我已经阅读了详细的C#文档,但我没有看到这是什么类型的构造。仅在关于自定义RoutedEvents的文档中,我看到了这段代码,但在正常的C#tutorial / primer中,我从未发现这是一种法律语言结构。有人可以向我解释一下吗?或者指出一个很好的文件来解释这个?

提前致谢。

2 个答案:

答案 0 :(得分:2)

他们是“事件访问者”。它们是属性语法的事件。它们允许您公开事件并更改其工作方式..而不会破坏封装类契约(如属性)。

请参阅此处获取解释:http://msdn.microsoft.com/en-us/library/bb882534.aspx

答案 1 :(得分:0)

这是为events in C#保留的语法,另请参阅here。引用:

  

add contextual关键字用于定义客户端代码订阅事件时调用的自定义事件访问器。如果您提供自定义添加访问者,则还必须提供删除访问者。