如果我多次向事件添加(或删除)相同的EventHandler,那是“坏”吗?内部发生的任何事情会导致问题吗? (我正在TextBox上实现数据验证,当TB内容变为/有效时,它将打开/关闭MouseDoubleClick处理程序。)
答案 0 :(得分:2)
当您尝试多次取消订阅时,没有任何事情发生。
如果您希望使用处理程序订阅到事件,您可以确保它尚未订阅。你应该这样做。因为可以多次订阅。当然只有当你不想做的事情时......
当您使用相同的处理程序订阅两次时会发生什么?这很简单......处理程序在事件InvocationList
中是两次,所以它被调用两次。当你再次订阅时,它会被调用三次......每次引发事件时,都会调用InvocationList
中的订阅处理程序。
你可以看here ......正如你所看到的......这是至少两个已经问过的问题的重复。所以答案很多:)