假設我有2個類,classA和classB。對象A(classA)包含一些對象B(classB)。 B對象有一個事件,並且對象A已經訂閱了一個委託,該委託在引發(任何這些B對象的事件)時被執行。在訂閱另一個對象的事件的委託中使用(object sender)
private void fooEventHandler(object sender, EventArgs e)
{
...
}
在做fooEventHandler東西(這必須在內部完成)後,我想給的信號已經引發該事件的我在fooEventHandler所做的結果B對象。所以我做了以下幾點:
private void fooEventHandler(object sender, EventArgs e)
{
...
if (allOK)
((classB)sender).isOK();
else
((classB) sender).isNotOK();
}
所以我實際上使用發件人在事件上升後調用objectB上的特定方法。我正在做這一切,以避免傳遞給objectB(在他的構造函數中)一些objectA成員,從設計的角度來看不應該在objectB中。這是處理這個問題的合理方式嗎?以這種方式使用(對象發送者)是否很常見?
isNotOK()。以一個例子來看看CancelEventHandler委託。 –
嗯..你可能會更具體一點嗎?我正在查看CancelEventHandler,但我不明白你的意思...... –
如果這是你的事件,最好定義一個處理程序,它具有classB作爲參數而不是對象 – Vadim