C#事件处理程序

9 c# windows events

我如何检查C#if button.Click事件是否有任何处理程序关联?如果(button.Click!= null)抛出编译错误.

Jon*_*eet 17

你不能.事件只是暴露"添加处理程序"和"删除处理程序" - 这就是全部.(实际上在CLR中,您还可以使用元数据将方法与"触发事件"相关联,但C#编译器永远不会生成.)某些事件发布者可能会提供其他方法来检查是否有任何订阅者(或者确实让你看到那些订阅者)但它不是事件模式本身的一部分.

有关更多信息,请参阅我关于事件的文章,或查看事件标记(我将要添加到此问题中).