我最近在我维护的ASP.NET代码库中发现了这种技术。它做了什么以及如何使用它?也许更重要的是,如果ASP.NET使用模拟页面生命周期事件,这项工作是否会起作用?
public event EventHandler CancelEvent
{
add { cancelButton.Click += value; }
remove { cancelButton.Click -= value; }
}
Resharper说这个事件目前尚未使用,我以前从未见过这种技术。通常我在OnInit上连接我的事件......例如。
cancelButton.Click += HandleClick;
答案 0 :(得分:3)
它只是基本上委托事件处理 - 当有人订阅您的CancelEvent
事件时,它只是将该事件处理程序添加到cancelButton
的{{1}}事件中,同样也可以删除。
这意味着您的类型正在公开表示取消的事件,而不是仅暴露按钮本身。当然,如果没有别的东西想要使用那个事件,那么在这种情况下它是毫无意义的 - 但这是一个有趣的技术来了解。
答案 1 :(得分:0)
这是公开用户控件的事件属性的方法。在asp.net标记中,您将使用类似于以下代码的内容:
< my:control id =“cancelbutton”OnCancelEvent =“myCancelEventHandler”...... < /我的:控制>
这主要用于扩展Web控件或创建复合控件,并且您希望在标记上定义处理程序,而不是在代码中定义。