4

我知道这可能是一个微不足道的问题,但我只是想知道调用Button.PerformClick而不是直接调用按钮的单击事件是否有任何优势。MSDN 文档简单地说:

为按钮生成 Click 事件。

这是否意味着它与调用按钮的单击事件只是做同样的事情,还是有其他一些特殊的优势?

4

1 回答 1

12

对订阅事件一无所知的外部调用者不能简单地调用点击处理程序 - 并且事件不允许您获取有关订阅者的信息。所以这个方法允许关注点分离,让外部调用者可以“玩得好”。

此外:

  • 它确保应用虚拟方法上的任何多态性
  • 它适用任何规则 - 例如:按钮是否被禁用

如果您确实了解事件处理程序,并且您没有使用多态性,并且您不关心它是否被禁用,并且您不必担心您还不知道的事件处理程序 - 那么无论如何:只需调用事件处理程序方法。

于 2013-08-09T19:28:28.583 回答