假设我有 2 个类,A 类和 B 类。对象 A(属于 A 类)包含一些对象 B(属于 B 类)。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(在他的构造函数中)。这是处理问题的合理方法吗?以这种方式使用 (object sender) 是否常见?