【发布时间】:2013-08-01 15:29:00
【问题描述】:
有没有干净的方法来做到这一点?
Expression<Func<int, string>> exTyped = i => "My int = " + i;
LambdaExpression lambda = exTyped;
//later on:
object input = 4;
object result = ExecuteLambdaSomeHow(lambda, input);
//result should be "My int = 4"
这应该适用于不同的类型。
【问题讨论】:
-
为什么不只是
var func = new Func<int, string>(x => { return string.Format("My int = {0}", x); });? -
@PoweredByOrange 我假设问题很简单。
-
@Kevin 有道理,否则一个简单的
string.Format()就可以了:) -
为什么要使用后期绑定 (
DynamicInvoke)。如果可能的话,我会尽量避免这种情况(因为你没有编译时检查;因此你很可能会遇到运行时错误)。 -
@Styxxy 好点!我已经相应地更新了我的答案。
标签: c# lambda expression