接受零个、一个或多个参数的委托



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

换言之,如果我有一堆函数添加到这个委托中,是否可以根据参数的数量和类型来确定在调用委托时要调用这些函数中的哪一个?

来自MSDN文档:

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

动态委托参数的概念本身就会与这个定义相冲突。因此,不可以让一个委托接受多个签名。

不清楚如何用不同的参数计数、类型和返回类型来概括函数调用链(正如我所理解的)。毫无疑问,delegate在这里不是你的朋友。

imo,你需要做的是:

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

最新更新