【发布时间】:2013-03-21 22:13:09
【问题描述】:
我想构建一个 UnaryExpression 列表,以便稍后在我的代码中使用。我能够轻松地将其用于 BinaryExpression 并获得:
var binaryList = new Func<Expression, Expression, Expression>[]
{
Expression.Add,
Expression.Subtract,
Expression.Multiply,
Expression.Divide
};
在我的 UnaryExpression 列表中,我希望能够将 Math.Cos(..)、Math.Log(..) 处理为一元运算符。为了得到这个想法,我很想拥有类似的东西
var unaryList = new Func<Expression, Expression>[]
{
Expression.Negate, // works fine
new Func<Expression, Expression>(
expr => new UnaryExpression(Math.Cos, expr)
};
有什么建议吗? 提前致谢。
【问题讨论】:
-
你看过 Expression.Call 方法吗?
-
是的,但我无法检索到
Math.Cos的 MethodInfo。
标签: c# linq lambda expression