传递委托方法并动态调用参数
本文关键字:动态 调用 参数 方法 | 更新日期: 2023-09-27 18:35:10
我以前问过类似的问题,但我只是很难理解这个问题......
我有一个代表...
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
?
delegate void assertDelegate(params object[] args);
此委托签名与 Assert.AreEqual
的任何签名都不匹配。请改用:
delegate void assertDelegate(string first, string second);
或Func<string, string>
.