【问题标题】:Linq expression, get parameters?linq表达式,获取参数?
【发布时间】:2011-08-23 09:14:34
【问题描述】:

我得到了一个 linq 表达式,

internal T Execute<T>(System.Linq.Expressions.Expression<Func<int, string, T>> expr)
{
    var paramInt = ??;
    var paramString = ??;
}

我用这个来调用这个方法:

Expression<Func<int, string, Guid>> myExpression2 = (a,b) => Callmethod(a, b, 5);

Execute<Guid>(myExpression2);

如何从执行方法中的表达式中获取参数?

-- 澄清一下--

我想从参数中获取值,以便对它们进行一些计算。

【问题讨论】:

    标签: c# linq lambda expression


    【解决方案1】:

    嗯,你可以使用Parameters属性获取参数。

    var parameters = expr.Parameters;
    

    但是,每个都是ParameterExpression。这会给你参数名称和类型,但不清楚你想用它们做什么。

    【讨论】:

    • 我想从参数中获取值,以便对它们进行一些计算。
    • @Patrick:参数没有值——它们是参数。这就像问一个方法参数的值是什么——它只有在被调用时才有值。
    • @Jon,我想他想提取表达式中传递的值。
    • @Filip:但在这种情况下是哪些值?我们得到的唯一值是 5,它是方法调用的参数 within 表达式树...
    • @Jon,对,但是当它们被调用时,它们必须有一个值,不是吗?因此,该值就是您要提取的值。比如5个,那可以提取吗?
    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多