1

以前にも似たような質問をしたことがありますが、これについて頭を悩ませているだけです...

代理人がいる...

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ますか?

4

1 に答える 1

1
delegate void assertDelegate(params object[] args);

この委任署名は の署名と一致しませんAssert.AreEqual。代わりに使用してください:

delegate void assertDelegate(string first, string second);

またはFunc<string, string>

于 2012-05-22T14:55:16.257 に答える