Expression.Invoke 方法

定義

多載

Invoke(Expression, Expression[])

建立 InvocationExpression,將委派或 Lambda 運算式套用至引數運算式清單。

Invoke(Expression, IEnumerable<Expression>)

建立 InvocationExpression,將委派或 Lambda 運算式套用至引數運算式清單。

Invoke(Expression, Expression[])

來源:
InvocationExpression.cs
來源:
InvocationExpression.cs
來源:
InvocationExpression.cs

建立 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 運算式套用至所提供的引數。

例外狀況

expressionnull

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)

備註

Type產生的 InvocationExpression 屬性代表所 expression 表示之委派的傳回型別。類型。

如果 為 , Arguments 則產生的 InvocationExpression 屬性是空 null 的。 arguments 否則,它包含與 相同的元素 arguments ,但其中 Expression 一些物件可能會 加上引號

注意

只有在 所 expression 表示委派的對應參數的類型為 Expression 時,才會加上引號。 引號表示元素會包裝在節點中 Quote 。 產生的節點是 , UnaryExpressionOperand 屬性是 的 arguments 元素。

適用於

Invoke(Expression, IEnumerable<Expression>)

來源:
InvocationExpression.cs
來源:
InvocationExpression.cs
來源:
InvocationExpression.cs

建立 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 運算式套用至所提供的引數。

例外狀況

expressionnull

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)

備註

Type產生的 InvocationExpression 屬性代表所 expression 表示之委派的傳回型別。類型。

如果 為 , Arguments 則產生的 InvocationExpression 屬性是空 null 的。 arguments 否則,它包含與 相同的元素 arguments ,但其中 Expression 一些物件可能會 加上引號

注意

只有在 所 expression 表示委派的對應參數的類型為 Expression 時,才會加上引號。 引號表示元素會包裝在節點中 Quote 。 產生的節點是 , UnaryExpressionOperand 屬性是 的 arguments 元素。

適用於