2

如果我多次向一个事件添加(或删除)相同的 EventHandler,那是“坏”吗?内部发生了什么会导致问题的事情吗?(我在 TextBox 上实现数据验证,当 TB 内容变为有效/有效时,它将打开/关闭 MouseDoubleClick 处理程序。)

4

1 回答 1

2

当您尝试多次取消订阅事件时,什么都没有发生。

当您想使用您的处理程序订阅事件时,您可以确保它尚未订阅。你应该这样做。因为可以多次订阅。当然,只有当这不是你想做的事情时......

当您使用相同的处理程序两次订阅事件时会发生什么?这很简单......处理程序在事件中出现了两次,InvocationList所以它被调用了两次。当您再次订阅时,它会被调用三次......每次引发事件时都会InvocationList调用订阅的处理程序。

你可以看这里......正如你所看到的......它至少重复了两个已经提出的问题。所以有很多答案:)

于 2013-01-31T14:52:34.100 回答