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-尖銳) –