gpt4 book ai didi

c# - 执行 LambdaExpression 并获取返回值作为对象

转载 作者:IT王子 更新时间:2023-10-29 04:12:59 26 4
gpt4 key购买 nike

有没有一种干净的方法来做到这一点?

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"

这应该适用于不同的类型。

最佳答案

当然...您只需要编译您的 lambda 然后调用它...

object input = 4;
var compiledLambda = lambda.Compile();
var result = compiledLambda.DynamicInvoke(input);

Styxxy 提出了一个很好的观点...让编译器帮助您更好地为您服务。请注意编译表达式,因为在下面的代码中,输入和结果都是强类型的。

var input = 4;
var compiledExpression = exTyped.Compile();
var result = compiledExpression(input);

关于c# - 执行 LambdaExpression 并获取返回值作为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17981673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com