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

イベントをワイヤリングするコードを呼び出し、すでにワイヤリングされている場合に誤って再度ワイヤリングすることがない場合は、ワイヤリングを解除してから再ワイヤリングできます。これは上記のコードサンプルです。

そもそも配線されていなければ、エラーは発生しません。ただし、コードがすでに最初に実行されている場合は、イベントが2回実行されることはありません。したがって、配線を外してから再配線します。

于 2013-07-07T16:25:27.793 に答える