Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从ParameterExpression获取值?_C#_Expression Trees - Fatal编程技术网

C# 如何从ParameterExpression获取值?

C# 如何从ParameterExpression获取值?,c#,expression-trees,C#,Expression Trees,我有一个具有以下签名的方法: void Method(Expression<Func<TSource, IEnumerable<TCollection>>> collectionSelector) {} 如何将参数的实际值放在那里?没有值,因为参数是占位符。参数表示方法参数(本例中为lambda参数)。可以使用任何值调用此函数/表达式。没有预设值。没有值,因为参数是占位符。参数表示方法参数(本例中为lambda参数)。可以使用任何值调用此函数/表达式。没有预

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

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

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

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

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

听起来很合理。但是,每个可能的参数都有一个运行时值。这种情况有没有回调?当从其他地方调用collectionSelector并提供特定参数时,我能做出反应吗?@yBee我不确定我是否理解您的要求。我认为你应该问另一个问题,并详细解释你到底需要什么以及为什么。举个例子也没什么坏处。如果你愿意,你可以在这里贴一个问题的链接。请注意,表达式在概念上类似于Func。您知道,只有在提供参数的情况下,才能使用一个参数调用Func。Func是回调函数,在它的内部(在它的主体中),你可以看到具体的参数。我现在明白了。
方法负责为所有参数表达式提供值。因此,为了解决我的问题,我需要为该方法提供另一个参数-
IEnumerable source
。然后,
collectionSelector
中的每个参数表达式值将取自该
源代码,我将能够为每个参数生成
IEnumerable
。这听起来很合理。但是,每个可能的参数都有一个运行时值。这种情况有没有回调?当从其他地方调用collectionSelector并提供特定参数时,我能做出反应吗?@yBee我不确定我是否理解您的要求。我认为你应该问另一个问题,并详细解释你到底需要什么以及为什么。举个例子也没什么坏处。如果你愿意,你可以在这里贴一个问题的链接。请注意,表达式在概念上类似于Func。您知道,只有在提供参数的情况下,才能使用一个参数调用Func。Func是回调函数,在它的内部(在它的主体中),你可以看到具体的参数。我现在明白了。
方法负责为所有参数表达式提供值。因此,为了解决我的问题,我需要为该方法提供另一个参数-
IEnumerable source
。然后,
collectionSelector
中的每个参数表达式值将从该
源代码中获取,我将能够为每个参数生成
IEnumerable
var collectionSelectorFunc = collectionSelector.Compile();
var collection = collectionSelectorFunc.Invoke(collectionSelector.Parameters[0]./*???*/);