委托接受零个,一个或多个参数

时间:2012-03-18 22:14:35

标签: c# .net dynamic delegates

在C#中,是否可以以接受零个,一个或多个参数的方式声明委托? dynamic关键字是否有用?

换句话说,如果我有一堆函数添加到此委托中,是否可以根据参数的数量和类型确定调用委托时调用哪些函数?

2 个答案:

答案 0 :(得分:3)

来自MSDN文档:

  

与委托的签名匹配的任何方法,包括   返回类型和参数可以分配给委托。

动态委托参数的概念会与此定义冲突。 所以,你不能让代表接受多个签名。

答案 1 :(得分:0)

不清楚你将如何用不同的参数计数,类型和返回类型来概括函数调用链(据我所知)。绝对delegate不是你的朋友。

你需要做的是,imo,是:

定义一个自定义类,您可以在其中聚合所需的函数,并在列表,队列或其他任何内容上调用它们。如果要使用delegates,则需要为函数的每个类型定义一个委托。这实际上是delegates:类型安全函数指针的优点。