将Func转换为委托
我定义了以下委托:
public delegate object MyDelegate(dynamic target);
我有一个Func
对象:
Func myFunc
如何将myFunc
转换为MyDelegate
?
我试过这些说明,但都没有奏效:
MyDelegate myDeleg = myFunc; MyDelegate myDeleg = (MyDelegate) myFunc; MyDelegate myDeleg = myFunc as MyDelegate;
您可以包装现有委托:
(MyDelegate)(x => myFunc(x))
或者等效地:
MyDelegate myDeleg = x => myFunc(x);
这会导致每次调用时性能损失很小,但代码非常简单。