编译表达式,需要一个参数
问题描述:
好吧,我相信这很简单,但我有一个高级时刻。编译表达式,需要一个参数
我有一个简单的BinaryExpression(GREATERTHAN)左侧是一个ParameterExpression,右侧是一个常量表达式我想编译这个表达,我可以打电话和参数传递给函数求...
var func = ...something with my exp....
bool result = func(myValue);
感谢哈桑,我修改了他的答案,我需要......
var func = Expression.Lambda<Func<int,bool>>(myExpr, (ParameterExpression)myExpr.left).Compile();
答
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方法的要求.... –