Sdílet prostřednictvím


Expression.Invoke Metoda

Definice

Přetížení

Name Description
Invoke(Expression, Expression[])

Vytvoří výraz InvocationExpression delegáta nebo výraz lambda na seznam výrazů argumentů.

Invoke(Expression, IEnumerable<Expression>)

Vytvoří výraz InvocationExpression delegáta nebo výraz lambda na seznam výrazů argumentů.

Invoke(Expression, Expression[])

Zdroj:
InvocationExpression.cs
Zdroj:
InvocationExpression.cs
Zdroj:
InvocationExpression.cs
Zdroj:
InvocationExpression.cs
Zdroj:
InvocationExpression.cs

Vytvoří výraz InvocationExpression delegáta nebo výraz lambda na seznam výrazů argumentů.

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

Parametry

expression
Expression

Výraz Expression delegáta nebo výrazu lambda, který se má použít.

arguments
Expression[]

Pole Expression objektů, které představují argumenty, na které je použit výraz delegát nebo lambda.

Návraty

Výraz InvocationExpression lambda nebo delegát se použije na zadané argumenty.

Výjimky

expression je null.

expression. Typ nepředstavuje typ delegáta ani typ Expression<TDelegate>.

nebo

Vlastnost Type prvku arguments není možné přiřadit k typu odpovídajícího parametru delegáta reprezentované expression.

arguments neobsahuje stejný počet prvků jako seznam parametrů delegáta reprezentovaný expression.

Příklady

Následující příklad ukazuje, jak použít metodu Invoke(Expression, Expression[]) k vytvoření InvocationExpression , který představuje vyvolání výrazu lambda se zadanými argumenty.

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)

Poznámky

Vlastnost Type výsledného InvocationExpression představuje návratový typ delegáta, který je reprezentován expression. Typ.

Vlastnost Arguments výsledné InvocationExpression hodnoty je prázdná, pokud arguments je null. Jinak obsahuje stejné prvky jako arguments některé z těchto Expressionobjektů.

Poznámka:

Prvek bude citován pouze v případě, že odpovídající parametr delegáta reprezentovaný expression je typu Expression. Uvozování znamená, že prvek je zabalený do Quote uzlu. Výsledný uzel je jehož UnaryExpressionOperand vlastnost je prvek arguments.

Platí pro

Invoke(Expression, IEnumerable<Expression>)

Zdroj:
InvocationExpression.cs
Zdroj:
InvocationExpression.cs
Zdroj:
InvocationExpression.cs
Zdroj:
InvocationExpression.cs
Zdroj:
InvocationExpression.cs

Vytvoří výraz InvocationExpression delegáta nebo výraz lambda na seznam výrazů argumentů.

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

Parametry

expression
Expression

Jedná se o Expression výraz delegáta nebo výrazu lambda, na který se má použít.

arguments
IEnumerable<Expression>

Objekty IEnumerable<T>Expression , které představují argumenty, na které je použit výraz delegát nebo lambda.

Návraty

Výraz InvocationExpression lambda nebo delegát se použije na zadané argumenty.

Výjimky

expression je null.

expression. Typ nepředstavuje typ delegáta ani typ Expression<TDelegate>.

nebo

Vlastnost Type prvku arguments není možné přiřadit k typu odpovídajícího parametru delegáta reprezentované expression.

arguments neobsahuje stejný počet prvků jako seznam parametrů delegáta reprezentovaný expression.

Příklady

Následující příklad ukazuje, jak použít metodu Invoke(Expression, Expression[]) k vytvoření InvocationExpression , který představuje vyvolání výrazu lambda se zadanými argumenty.

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)

Poznámky

Vlastnost Type výsledného InvocationExpression představuje návratový typ delegáta, který je reprezentován expression. Typ.

Vlastnost Arguments výsledné InvocationExpression hodnoty je prázdná, pokud arguments je null. Jinak obsahuje stejné prvky jako arguments některé z těchto Expressionobjektů.

Poznámka:

Prvek bude citován pouze v případě, že odpovídající parametr delegáta reprezentovaný expression je typu Expression. Uvozování znamená, že prvek je zabalený do Quote uzlu. Výsledný uzel je jehož UnaryExpressionOperand vlastnost je prvek arguments.

Platí pro