我之前問過類似的問題,但我只是有一個很難包裝我解決此頭...傳遞委託方法和動態調用參數
我有一個委託......
delegate void assertDelegate(params object[] args);
,我有調用該委託的方法...
public void assert(assertDelegate assertMethod, params object[] args) {
string expectedValue;
string actualValue;
// derive value of 'expectedValue' and 'actualValue' from 'args'
assertMethod.DynamicInvoke(expectedValue, actualValue);
}
我的想法是,必須有通過動作和動態調用的參數爲行動的方式...
assert(Assert.AreEqual,new object[]{ HtmlDiv.PropertyNames.Id, "footer"});
但我得到錯誤Expected a method with 'void AreEqual(params object[])' signature
。
也許我誤解DynamicInvoke
?
你歌廳錯誤,因爲Assert.AreEqual和assertDelegate的簽名不一樣 – gabba
你能解釋一下你想要做的更普遍的是什麼?您可以使用反射動態調用傳遞給函數的一些方法,並把參數 – gabba
什麼是Assert.AreEqual的簽名? –