【问题标题】:Compile expression that requires a parameter编译需要参数的表达式
【发布时间】:2011-10-10 05:34:44
【问题描述】:

好的,我相信这很简单,但我有一个高级的时刻。

我有一个简单的 BinaryExpression(大于)左侧是 ParameterExpression,右侧是 ConstantExpression 我想将此表达式编译为可以调用的函数并将参数传递给...

var func = ...something with my exp....

bool result = func(myValue);

感谢 Hasan,我根据我的需要修改了他的答案...

var func = Expression.Lambda<Func<int,bool>>(myExpr, (ParameterExpression)myExpr.left).Compile();

【问题讨论】:

    标签: linq expression-trees


    【解决方案1】:
    var param = Expression.Parameter(typeof(int));
    var value = Expression.Constant(3);
    var body = Expression.GreaterThan(param, value);
    var checkValue = Expression.Lambda<Func<int, bool>>(body, param).Compile();
    
    Console.WriteLine(checkValue(4));
    Console.WriteLine(checkValue(2));
    

    【讨论】:

    • 谢谢。在我的情况下,我已经有了 BinaryExpression,所以我不需要创建它......但我缺少的是将参数传递给 lambda 方法的要求......
    猜你喜欢
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    相关资源
    最近更新 更多