将Func转换为委派

时间:2015-04-29 12:14:25

标签: c# .net c#-4.0 dynamic delegates

我定义了以下代理:

public delegate object MyDelegate(dynamic target);

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

Func<dynamic, object> myFunc

如何将myFunc转换为MyDelegate

我已经尝试过这些说明,但没有一个有效:

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

1 个答案:

答案 0 :(得分:10)

您可以包装现有委托:

ConfigFactory.load()

或等效地:

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

这会导致每次调用时性能损失很小,但代码非常简单。