我有一個Action,我不知道如何訪問調用該方法的實例。行動委託。如何獲得調用方法的實例
例:
this.FindInstance(() => this.InstanceOfAClass.Method());
this.FindInstance(() => this.InstanceOfAClass2.Method());
this.FindInstance(() => this.InstanceOfAClass3.Method());
public void FindInstance(Action action)
{
// The action is this.InstanceOfAClass.Method(); and I want to get the "Instance"
// from "action"
}
謝謝
沒有,Delegate.Target是其中已經調用操作的類。我想要調用該方法的實例。 – 2011-03-23 18:04:32
@Jean在這種情況下,我不明白你在做什麼。請提供一個簡短但完整的示例 – 2011-03-23 18:06:52
@Jean:這不適合你的原因是因爲你會用一個相當無用的lambda包裝方法調用。嘗試'FindInstance(InstanceOfAClass.Method)'(沒有lambda),它會按你的意願工作。如果您希望它使用lambda語法,則需要接受「Expression」類型的參數,然後遍歷表達式樹。 –
2011-03-23 18:12:48