MethodInfo method = typeof(T).GetMethod("Parse", new[] { typeof(string) });
parse = Delegate.CreateDelegate(typeof(Func<T,string>), method);
在这种情况下,T是浮点数。但是我得到一个绑定到目标方法的错误。 Parse我相信是一种静态的方法。我看过其他例子,但我无法弄清楚为什么它没有约束力。
答案 0 :(得分:3)
您必须交换T
和string
,因为该方法会返回T
而不是string
。
我将T
替换为float
,以下代码适用于我:
MethodInfo method = typeof(float).GetMethod("Parse", BindingFlags.Static | BindingFlags.Public, null, new[] { typeof(string) }, null);
var parse = Delegate.CreateDelegate(typeof(Func<string, float>), method);
来源:VS intellisense和MSDN Func(Of T, TResult) Delegate