Windows フォーム アプリケーションでは、次のようにイベント ハンドラーを登録できます。
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
後で同じハンドラーを次のように登録解除します。
this.KeyDown -= new KeyEventHandler(Form1_KeyDown);
-= には、同じ署名の 2 番目の新しいハンドラーではなく、最初に登録されたのと同じハンドラーが必要であると予想されるため、これは奇妙に思えます。しかし、経験から、私はこれが機能することを知っています。これは、これは特殊なケースであり、実際にはそうであると私に考えさせました
Form1_KeyDown == new KeyEventHandler(Form1_KeyDown)
その理論に基づいて、次のようなイベントを登録および登録解除するためにコードを頻繁に書き直しました。
this.KeyDown += Form1_KeyDown;
これは安全ですか?それとも、私が気付いていない意図しない副作用がありますか?