在ASP.NET中添加和删除事件

时间:2009-12-02 15:32:59

标签: c# asp.net event-handling

我最近在我维护的ASP.NET代码库中发现了这种技术。它做了什么以及如何使用它?也许更重要的是,如果ASP.NET使用模拟页面生命周期事件,这项工作是否会起作用?

    public event EventHandler CancelEvent
    {
        add { cancelButton.Click += value; }
        remove { cancelButton.Click -= value; }
    }

Resharper说这个事件目前尚未使用,我以前从未见过这种技术。通常我在OnInit上连接我的事件......例如。

    cancelButton.Click += HandleClick;

2 个答案:

答案 0 :(得分:3)

它只是基本上委托事件处理 - 当有人订阅您的CancelEvent事件时,它只是将该事件处理程序添加到cancelButton的{​​{1}}事件中,同样也可以删除。

这意味着您的类型正在公开表示取消的事件,而不是仅暴露按钮本身。当然,如果没有别的东西想要使用那个事件,那么在这种情况下它是毫无意义的 - 但这是一个有趣的技术来了解。

答案 1 :(得分:0)

这是公开用户控件的事件属性的方法。在asp.net标记中,您将使用类似于以下代码的内容:

< my:control id =“cancelbutton”OnCancelEvent =“myCancelEventHandler”...... < /我的:控制>

这主要用于扩展Web控件或创建复合控件,并且您希望在标记上定义处理程序,而不是在代码中定义。