Mat*_*ero 11 .net c# delegates dynamic c#-4.0
我定义了以下委托:
public delegate object MyDelegate(dynamic target);
Run Code Online (Sandbox Code Playgroud)
我有一个Func<dynamic, object>对象:
Func<dynamic, object> myFunc
Run Code Online (Sandbox Code Playgroud)
我怎样才能转换myFunc成MyDelegate?
我试过这些说明,但都没有奏效:
MyDelegate myDeleg = myFunc;
MyDelegate myDeleg = (MyDelegate) myFunc;
MyDelegate myDeleg = myFunc as MyDelegate;
Run Code Online (Sandbox Code Playgroud)
usr*_*usr 11
您可以包装现有委托:
(MyDelegate)(x => myFunc(x))
Run Code Online (Sandbox Code Playgroud)
或等效地:
MyDelegate myDeleg = x => myFunc(x);
Run Code Online (Sandbox Code Playgroud)
这会导致每次调用时性能损失很小,但代码非常简单.
| 归档时间: |
|
| 查看次数: |
4806 次 |
| 最近记录: |