我有这个代码,它产生一个委托,将 myNumber 乘以 5
ParameterExpression numParam = Expression.Parameter(typeof(int), "num");
ConstantExpression five = Expression.Constant(5, typeof(int));
BinaryExpression numMultiply = Expression.Multiply(numParam,five);
让我们创建委托:
Expression<Func<int, int>> lambda1 =
Expression.Lambda<Func<int, int>>(
numMultiply,
new ParameterExpression[] { numParam });
Console.Write(lambda1.Compile()(4));
现在假设我想将此表达式树更改为,Add
而不是Multiply
这里是新行:
BinaryExpression numAdd = Expression.Add(numParam,five);
但是我怎样才能改变 lambda1 以便它现在将使用numAdd
而不是multiply
?