在C#中,是否可以以接受零个,一个或多个参数的方式声明委托? dynamic
关键字是否有用?
换句话说,如果我有一堆函数添加到此委托中,是否可以根据参数的数量和类型确定调用委托时调用哪些函数?
答案 0 :(得分:3)
来自MSDN文档:
与委托的签名匹配的任何方法,包括 返回类型和参数可以分配给委托。
动态委托参数的概念会与此定义冲突。 所以,你不能让代表接受多个签名。
答案 1 :(得分:0)
不清楚你将如何用不同的参数计数,类型和返回类型来概括函数调用链(据我所知)。绝对delegate
不是你的朋友。
你需要做的是,imo,是:
定义一个自定义类,您可以在其中聚合所需的函数,并在列表,队列或其他任何内容上调用它们。如果要使用delegates
,则需要为函数的每个类型定义一个委托。这实际上是delegates
:类型安全函数指针的优点。