8
减少的表达。如果我有一个函数委托,它采用像这样的一些参数的表达式:通过输入参数
Expression<Func<int, int, int, bool>> test = (num1, num2, num3) => num1 + num2 == num3;
是有办法/ I如何可以替换值中的一个(比方说5 num1
),并获得相当的表达:
Expression<Func<int, int, bool>> test = (num2, num3) => 5 + num2 == num3;
编辑:
还需要解决复杂的类型,例如:
Expression<Func<Thing, int, int>> test = (thing, num2) => thing.AnIntProp + num2;
[C#Linq vs. Currying]可能重复(http://stackoverflow.com/questions/8826266/c-sharp-linq-vs-currying) –
虽然我投票是dup,但这个问题实际上可能是不同的。也许你正在寻找表达式访问者的用法来替代有价值的参数? (沿着[this]的行)(http://stackoverflow.com/questions/11164009/using-a-linq-expressionvisitor-to-replace-primitive-parameters-with-property-ref)) –
不完全。我想与表达式一起工作。我认为它更接近[this](http://stackoverflow.com/questions/11159697/replace-parameter-in-lambda-expression)或[this](http://stackoverflow.com/questions/5631070/currying -expressions-在-C-尖锐) –