etw*_*s77 5 c# reflection func
我正在寻找一种方法将实例转换MemberInfo为"Func"类型(稍后通过lambda表达式使用它).
让我们说我有类型的成员函数
public bool func(int);
Run Code Online (Sandbox Code Playgroud)
使用反射,我以某种方式获得MemberInfo"mi"的实例,现在我想将其转换为Func<int, bool>;类型.就像是:
Func<int, bool f = myType.GetMember(mi.Name);
Run Code Online (Sandbox Code Playgroud)
有办法吗?
PS.Marc Grawell的回答解决了我的问题,无需进一步评论
Func<int,bool> f = Delegate.CreateDelegate(
typeof(Func<int,bool>), target, (MethodInfo)mi);
Run Code Online (Sandbox Code Playgroud)
请注意,这target是您要使用的对象,因为func它是非static方法.如果它是一种static方法,你可以省略(或传递null).或者,你可以省略target(或通过null)如果你把它一个Func<Foo, int, bool>地方Foo是声明的类型func.
然而!!!请注意,Func<int,bool>在创建lambda表达式方面,a很大程度上没有意义; lambda表达式很少使用委托.
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |