在某些情况下,我发现,开发人员无线事件然后再次连接它:
control.Click -= new eventHandler(eventHandler)
control.Click += new eventHandler(eventHandler)
为什么他们这样做?
答案 0 :(得分:4)
可能因为中间还有其他代码会触发事件,并且他们不希望eventHandler
对其采取行动。恕我直言,这不是最好的做事方式,但它很容易而且有效。
如果其间有 no 其他代码,则无法再次删除和添加相同的事件处理程序。
答案 1 :(得分:3)
我可以用一个简单的screnerio来解释这个。
想象一下你有一个“button1” 并且您在运行时添加了该事件。
但是点击此按钮后。它背后的过程需要说“3Mins”来完成。 并且您不希望用户再次单击此按钮。
所以你可以通过第一次解开它来做。 这样人就不会一次又一次地点击按钮。并在队列中添加指令。
答案 2 :(得分:0)
如果您调用连接事件的代码,并且如果它已经连线,您不会意外地再次连接它,您可以取消连接,然后重新连接它。这是上面的代码示例。
如果它首先没有连线,则不会抛出任何错误。但是如果代码已经先运行过,那么你不会让事件运行两次。因此,unwire然后重新连接。