代码之家  ›  专栏  ›  技术社区  ›  Ryszard Dżegan

如何从ParameterExpression中获取值?

  •  3
  • Ryszard Dżegan  · 技术社区  · 11 年前

    我有一个具有以下签名的方法:

    void Method(Expression<Func<TSource, IEnumerable<TCollection>>> collectionSelector) {}
    

    我需要得到的结果值 collectionSelector 以便将结果与的另一个实例进行比较 IEnumerable<TCollection> 。我正试图实现下面代码中的目标,但当我被要求提供参数值时,我陷入了困境:

    var collectionSelectorFunc = collectionSelector.Compile();
    var collection = collectionSelectorFunc.Invoke(collectionSelector.Parameters[0]./*???*/); 
    

    如何将参数的实际值放在那里?

    1 回复  |  直到 11 年前
        1
  •  4
  •   usr    11 年前

    没有值,因为参数是占位符。一个参数表示一个方法参数(在本例中为lambda参数)。您可以使用调用此函数/表达式 任何 价值没有预设值。