将 Func 转换为委托

Convert Func to Delegate

我定义了以下委托:

public delegate object MyDelegate(dynamic target);

我有一个 Func<dynamic, object> 对象:

Func<dynamic, object> myFunc

如何将 myFunc 转换为 MyDelegate

我已经尝试了这些说明,none 个有效:

MyDelegate myDeleg = myFunc;
MyDelegate myDeleg = (MyDelegate) myFunc;
MyDelegate myDeleg = myFunc as MyDelegate;

您可以包装现有委托:

(MyDelegate)(x => myFunc(x))

或等价地:

MyDelegate myDeleg = x => myFunc(x);

这会在每次调用时造成小的性能损失,但代码非常简单。