Expression.Invoke 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
Invoke(Expression, Expression[]) |
建立 InvocationExpression,將委派或 Lambda 運算式套用至引數運算式清單。 |
Invoke(Expression, IEnumerable<Expression>) |
建立 InvocationExpression,將委派或 Lambda 運算式套用至引數運算式清單。 |
Invoke(Expression, Expression[])
建立 InvocationExpression,將委派或 Lambda 運算式套用至引數運算式清單。
public:
static System::Linq::Expressions::InvocationExpression ^ Invoke(System::Linq::Expressions::Expression ^ expression, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.InvocationExpression Invoke (System.Linq.Expressions.Expression expression, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.InvocationExpression Invoke (System.Linq.Expressions.Expression expression, params System.Linq.Expressions.Expression[]? arguments);
static member Invoke : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.InvocationExpression
Public Shared Function Invoke (expression As Expression, ParamArray arguments As Expression()) As InvocationExpression
參數
- expression
- Expression
Expression,代表要套用的委派或 Lambda 運算式。
- arguments
- Expression[]
Expression 物件的陣列,代表要套用委派或 Lambda 運算式的引數。
傳回
InvocationExpression,可將指定的委派或 Lambda 運算式套用至所提供的引數。
例外狀況
expression
為 null
。
expression
.Type 不代表委派類型或 Expression<TDelegate>。
-或-
arguments
之項目的 Type 屬性無法指派給 expression
所表示之委派的對應參數類型。
arguments
包含的項目數與 expression
所表示委派的參數清單不同。
範例
下列範例示範如何使用 Invoke(Expression, Expression[]) 方法來建立 , InvocationExpression 代表具有指定自變數的 Lambda 表達式調用。
System.Linq.Expressions.Expression<Func<int, int, bool>> largeSumTest =
(num1, num2) => (num1 + num2) > 1000;
// Create an InvocationExpression that represents applying
// the arguments '539' and '281' to the lambda expression 'largeSumTest'.
System.Linq.Expressions.InvocationExpression invocationExpression =
System.Linq.Expressions.Expression.Invoke(
largeSumTest,
System.Linq.Expressions.Expression.Constant(539),
System.Linq.Expressions.Expression.Constant(281));
Console.WriteLine(invocationExpression.ToString());
// This code produces the following output:
//
// Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
Dim largeSumTest As System.Linq.Expressions.Expression(Of System.Func(Of Integer, Integer, Boolean)) = _
Function(num1, num2) (num1 + num2) > 1000
' Create an InvocationExpression that represents applying
' the arguments '539' and '281' to the lambda expression 'largeSumTest'.
Dim invocationExpression As System.Linq.Expressions.InvocationExpression = _
System.Linq.Expressions.Expression.Invoke( _
largeSumTest, _
System.Linq.Expressions.Expression.Constant(539), _
System.Linq.Expressions.Expression.Constant(281))
Console.WriteLine(invocationExpression.ToString())
' This code produces the following output:
'
' Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
備註
產生的 TypeInvocationExpression 屬性代表 所 expression
表示之委派的傳回型別。類型。
如果 為 ,Arguments則產生的 InvocationExpression 屬性是空null
的。arguments
否則,它包含與 相同的元素 arguments
,但其中一些 Expression 物件可能會 加上引號。
注意
只有在 所 expression
表示委派的對應參數的類型 Expression為 時,才會加上引號。 引號表示專案會包裝在節點中 Quote 。 產生的節點是 UnaryExpression ,其 Operand 屬性是 的 arguments
專案。
適用於
Invoke(Expression, IEnumerable<Expression>)
建立 InvocationExpression,將委派或 Lambda 運算式套用至引數運算式清單。
public:
static System::Linq::Expressions::InvocationExpression ^ Invoke(System::Linq::Expressions::Expression ^ expression, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.InvocationExpression Invoke (System.Linq.Expressions.Expression expression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.InvocationExpression Invoke (System.Linq.Expressions.Expression expression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Invoke : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.InvocationExpression
Public Shared Function Invoke (expression As Expression, arguments As IEnumerable(Of Expression)) As InvocationExpression
參數
- expression
- Expression
Expression,代表要套用的委派或 Lambda 運算式。
- arguments
- IEnumerable<Expression>
包含 IEnumerable<T> 物件的 Expression,代表要套用委派或 Lambda 運算式的引數。
傳回
InvocationExpression,可將指定的委派或 Lambda 運算式套用至所提供的引數。
例外狀況
expression
為 null
。
expression
.Type 不代表委派類型或 Expression<TDelegate>。
-或-
arguments
之項目的 Type 屬性無法指派給 expression
所表示之委派的對應參數類型。
arguments
包含的項目數與 expression
所表示委派的參數清單不同。
範例
下列範例示範如何使用 Invoke(Expression, Expression[]) 方法來建立 , InvocationExpression 代表具有指定自變數的 Lambda 表達式調用。
System.Linq.Expressions.Expression<Func<int, int, bool>> largeSumTest =
(num1, num2) => (num1 + num2) > 1000;
// Create an InvocationExpression that represents applying
// the arguments '539' and '281' to the lambda expression 'largeSumTest'.
System.Linq.Expressions.InvocationExpression invocationExpression =
System.Linq.Expressions.Expression.Invoke(
largeSumTest,
System.Linq.Expressions.Expression.Constant(539),
System.Linq.Expressions.Expression.Constant(281));
Console.WriteLine(invocationExpression.ToString());
// This code produces the following output:
//
// Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
Dim largeSumTest As System.Linq.Expressions.Expression(Of System.Func(Of Integer, Integer, Boolean)) = _
Function(num1, num2) (num1 + num2) > 1000
' Create an InvocationExpression that represents applying
' the arguments '539' and '281' to the lambda expression 'largeSumTest'.
Dim invocationExpression As System.Linq.Expressions.InvocationExpression = _
System.Linq.Expressions.Expression.Invoke( _
largeSumTest, _
System.Linq.Expressions.Expression.Constant(539), _
System.Linq.Expressions.Expression.Constant(281))
Console.WriteLine(invocationExpression.ToString())
' This code produces the following output:
'
' Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
備註
產生的 TypeInvocationExpression 屬性代表 所 expression
表示之委派的傳回型別。類型。
如果 為 ,Arguments則產生的 InvocationExpression 屬性是空null
的。arguments
否則,它包含與 相同的元素 arguments
,但其中一些 Expression 物件可能會 加上引號。
注意
只有在 所 expression
表示委派的對應參數的類型 Expression為 時,才會加上引號。 引號表示專案會包裝在節點中 Quote 。 產生的節點是 UnaryExpression ,其 Operand 屬性是 的 arguments
專案。