Sdílet prostřednictvím


Expression.Invoke Metoda

Definice

Přetížení

Invoke(Expression, Expression[])

Vytvoří výraz InvocationExpression , který použije výraz delegáta nebo výraz lambda na seznam výrazů argumentů.

Invoke(Expression, IEnumerable<Expression>)

Vytvoří výraz InvocationExpression , který použije výraz delegáta nebo výraz lambda na seznam výrazů argumentů.

Invoke(Expression, Expression[])

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

Vytvoří výraz InvocationExpression , který použije výraz 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

Představuje Expression výraz delegáta nebo lambda, který má být použit.

arguments
Expression[]

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

Návraty

, InvocationExpression který použije zadaného delegáta nebo výraz lambda na zadané argumenty.

Výjimky

expression je null.

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

-nebo-

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

arguments neobsahuje stejný počet prvků jako seznam parametrů pro delegáta reprezentovaný parametrem 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. V opačném případě obsahuje stejné prvky jako arguments s tím rozdílem, že některé z těchto Expression objektů mohou být citovány.

Poznámka

Prvek bude uvozován pouze v případě, že odpovídající parametr delegáta reprezentovaného parametrem expression je typu Expression. Uvozování znamená, že element je zabalený Quote v uzlu. Výsledný uzel je, UnaryExpression jehož Operand vlastnost je elementem .arguments

Platí pro

Invoke(Expression, IEnumerable<Expression>)

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

Vytvoří výraz InvocationExpression , který použije výraz 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

Představuje Expression výraz delegáta nebo lambda, který má být použit.

arguments
IEnumerable<Expression>

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

Návraty

, InvocationExpression který použije zadaného delegáta nebo výraz lambda na zadané argumenty.

Výjimky

expression je null.

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

-nebo-

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

arguments neobsahuje stejný počet prvků jako seznam parametrů pro delegáta reprezentovaný parametrem 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. V opačném případě obsahuje stejné prvky jako arguments s tím rozdílem, že některé z těchto Expression objektů mohou být citovány.

Poznámka

Prvek bude uvozován pouze v případě, že odpovídající parametr delegáta reprezentovaného parametrem expression je typu Expression. Uvozování znamená, že element je zabalený Quote v uzlu. Výsledný uzel je, UnaryExpression jehož Operand vlastnost je elementem .arguments

Platí pro