Button.PerformClick做什么?

rtu*_*ner 4 .net c# winforms

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

为按钮生成Click事件.

这是否意味着它只是调用按钮的click事件或者还有其他特殊优势吗?

Mar*_*ell 12

对订阅事件一无所知的外部调用者不能简单地调用click处理程序 - 事件不允许您获取有关订阅者的信息.因此,此方法允许分离关注点,以便外部呼叫者可以"玩得很好".

另外:

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

如果您确实了解事件处理程序,并且您没有使用多态,并且您不关心它是否被禁用,并且您不需要担心您还不知道的事件处理程序 - 那么通过各种方式:只需调用事件处理程序方法.