私は現在、一連のデリゲートを起動するためにイベントを使用しています。残りのデリゲートが別のデリゲート内から起動するのを防ぐことができる必要があります。
次のコードはシナリオを複製します...
//nonsense class
public class Foo {
public string Bar { get; set; }
}
//nonsense event.
public event Action<Foo> SomeEvent;
void BindAndFire() {
//wire it up.
SomeEvent += (foo) => {
var a = DateTime.Now.Millisecond % 2;
foo.Bar = (a == 0) ? "Hooray" : "Boo";
};
SomeEvent += (foo) => {
if(foo.Bar == "Boo") {
SomeEvent.CANCEL_THE_REST(); //what do I do here?
}
};
SomeEvent += (foo) => {
foo.Bar += ", you made it!";
};
//fire the event.
SomeEvent(new Foo());
}
上記を考えると、私は何をする必要がありますか?アクションのリストなどに変更しても100%問題ありませんが、後続のイベントの実行を停止できるはずです。
注:示されているコードは、問題を複製するためのものであり、私のプログラム構造ではありません。実際のプログラムは着信ネットワークイベントを処理しており、それらで実行される任意のデリゲートのリストがあります...1つの問題についてそのすべてを投稿したくありませんでした。
...多分私はそれらを意図されていない方法で使用しようとしているだけです、私はそれで大丈夫です、私はただイベントについていくつかの新しいことを学ぶ必要があるだけだと思っていますC#。
お時間をいただきありがとうございます!