classA と classB の 2 つのクラスがあるとします。オブジェクト A (classA の) には、いくつかのオブジェクト B (classB の) が含まれています。B オブジェクトにはイベントがあり、オブジェクト A は (これらの B オブジェクトのいずれかの) イベントが発生したときに実行されるデリゲートをサブスクライブしています。
private void fooEventHandler(object sender, EventArgs e)
{
...
}
fooEventHandler で何かを行った後 (これは A 内で行う必要があります)、イベントを発生させた B オブジェクトに、fooEventHandler で行ったことの結果を通知したいと考えています。だから私は次のことをします:
private void fooEventHandler(object sender, EventArgs e)
{
...
if (allOK)
((classB)sender).isOK();
else
((classB) sender).isNotOK();
}
そのため、実際には送信者を使用して、イベントが発生した後に objectB の特定のメソッドを呼び出しています。設計の観点からobjectBにあるべきではないobjectAメンバーをobjectB(彼のコンストラクター)に渡さないようにするために、これをすべて行っています。これは問題を処理するための合理的な方法ですか? このように (オブジェクト送信者) を使用するのは一般的ですか?