C# Linq表达式,获取参数?
我有一个linq表情C# Linq表达式,获取参数?,c#,linq,lambda,expression,C#,Linq,Lambda,Expression,我有一个linq表情 internal T Execute<T>(System.Linq.Expressions.Expression<Func<int, string, T>> expr) { var paramInt = ??; var paramString = ??; } 内部T执行(System.Linq.Expressions.Expression) { var参数=??; 变量参数字符串=??; } 我使用以下方法调用此方法:
internal T Execute<T>(System.Linq.Expressions.Expression<Func<int, string, T>> expr)
{
var paramInt = ??;
var paramString = ??;
}
内部T执行(System.Linq.Expressions.Expression)
{
var参数=??;
变量参数字符串=??;
}
我使用以下方法调用此方法:
Expression<Func<int, string, Guid>> myExpression2 = (a,b) => Callmethod(a, b, 5);
Execute<Guid>(myExpression2);
expressionmyexpression2=(a,b)=>Callmethod(a,b,5);
执行(myExpression2);
如何从execute方法中的表达式中获取参数
--澄清--
我想从参数中获取值,以便对其进行一些计算。好的,您可以使用属性获取参数
var parameters = expr.Parameters;
但是,它们中的每一个都是
参数表达式
。这将为您提供参数名称和类型,但不清楚您想用它们做什么。我想从参数中获取值,以便用它们进行一些计算。@Patrick:参数没有值-它们是参数。这就像询问一个方法参数的值是什么-它只有在被调用时才有值。@Jon,我想他想提取表达式中传递的值。@Filip:但是在这种情况下是哪些值?我们得到的唯一值是5,这是表达式树中方法调用的参数…@Jon,对,但是当调用它们时,它们必须有一个值,不是吗?因此,该值就是您要提取的值。例如,5,是否可以提取?