之前我曾问过类似的问题,但我只是很难绕过这个问题......
我有代表......
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
?
答案 0 :(得分:1)
delegate void assertDelegate(params object[] args);
此委托签名与Assert.AreEqual
的任何签名都不匹配。
改为使用:
delegate void assertDelegate(string first, string second);
或Func<string, string>
。