イベントハンドラを一度呼び出すだけで、それを切り離したいと思います。私が書くことを試みた:最初に呼び出すときにハンドラを切り離す
EventHandler handler = (s, e) =>
{
// Do something
//
// blabla
// Detach the handler
SizeChanged -= handler;
};
SizeChanged += handler;
しかしラインSizeChanged -= handler
に私はこのエラー
Use of unassigned local variable 'handler'
を取得し、あなたは私が進むべき方法にidead持っていますか?ブーリアンフラグを使うことを考えましたが、ハンドラを切り離す方法が見つからない場合にのみ実行します。
これを行うと、コールバックでnull ref例外が発生します。 –
いいえ、試してください。ハンドラはクロージャでキャプチャされます。 – aKzenT
ねえ、あなたもそれを試してみる前に私を投票しないでください!クロージャがどのように動作するかをお読みください。 – aKzenT