使用具有不同参数数量的方法的代理

时间:2015-08-14 15:17:25

标签: c# parameters delegates

我遇到了问题。我有类似的东西:

https://wis.sndcdn.com/XwA2iPEIVF8z_m.json

如你所见,我已经知道我想要的参数在哪里和有多少。问题是如何调用函数A和B,而函数A有一个参数而B没有参数?

2 个答案:

答案 0 :(得分:3)

将函数调用包装在与目标类型匹配的匿名委托中(没有参数,没有返回值):

ListSorter.myDelegate += (() => A(5));
ListSorter.myDelegate += B;

答案 1 :(得分:1)

要使用固定参数调用A,您需要创建一个与委托签名匹配的新方法,即没有参数且没有返回值,身体调用A,传递5 }。您可以使用新的命名方法执行此操作,也可以使用匿名方法;两者都可以正常工作:

ListSorter.myDelegate += () => A(5);

除此之外,您正在创建一个调用两个方法的委托,因此调用它将调用您添加到其中的两个方法。