C#でイベントハンドラを追加および削除する方法は、+ =および - =演算子を引数として渡すことで、1つのメソッドで実行できますか?単一のメソッドでC#イベントハンドラを追加/削除する
私は、繰り返しを避けるためにしようとしています:
AttachHandlers()
{
event1 += handler1;
event2 += handler2;
// etc...
}
DetachHandlers()
{
event1 -= handler1;
event2 -= handler2;
// etc...
}
または
AttachDetachHandlers(bool attach)
{
if (attach)
{
event1 += handler1;
event2 += handler2;
// etc...
}
else
{
event1 -= handler1;
event2 -= handler2;
}
}
を代わりに、私はこのような何か書きたいと思います:ようなもので使用されて
AttachDetachHandlers(operator addRemove)
{
addRemove(event1, handler1);
addRemove(event2, handler2);
// etc...
}
を:
AttachDetachHandlers(+=);
異なる署名(+ = & - = doのように)を持つハンドラーは、イベント&ハンドラーで動作するのが理想的です。
ブール値に基づいてif文を使用するのはなぜですか。 – JuanR
@Juan:これはまだ繰り返しているので(質問に例を追加した) – Jimmy
@Sinatrハンドラを接続した直後にデタッチしたくない。私はAttachHandlers()とDetachHandlers()を置き換える単一の関数を必要とします。 – Jimmy