传递委托方法并动态调用参数

本文关键字:动态 调用 参数 方法 | 更新日期: 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>.