4

在某些情况下,我发现,开发人员取消连接事件,然后像这样再次连接它:

control.Click -= new eventHandler(eventHandler)
control.Click += new eventHandler(eventHandler)

他们为什么这样做?

4

3 回答 3

4

可能是因为中间有其他代码会触发事件,而他们不想eventHandler对其采取行动。恕我直言,这不是做事的最佳方式,但它很容易而且很有效。

如果两者之间没有其他代码,则不可能有理由再次删除并添加相同的事件处理程序。

于 2012-05-03T07:39:58.443 回答
3

我可以用一个简单的场景来解释这一点。

想象一下,您有一个“button1”并且您在运行时添加了事件。

但是一旦单击此按钮。它背后的过程需要说“3分钟”才能完成。而且您不希望用户再次单击此按钮。

因此,您可以在第一时间取消接线。这样该人就不会一次又一次地单击该按钮。并将指令添加到队列中。

于 2012-05-03T07:46:38.670 回答
0

如果您调用连接事件的代码,并且如果它已经连接,您不会不小心再次连接它,您可以取消连接,然后重新连接它。这是上面的代码示例。

如果它一开始还没有连接,则不会引发错误。但是如果代码已经先运行,你不会让事件运行两次。因此,先拆线,然后重新布线。

于 2013-07-07T16:25:27.793 回答