Condividi tramite


Expression.Invoke Metodo

Definizione

Crea un oggetto InvocationExpression.

Overload

Nome Descrizione
Invoke(Expression, Expression[])

Crea un oggetto InvocationExpression che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

Invoke(Expression, IEnumerable<Expression>)

Crea un oggetto InvocationExpression che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

Invoke(Expression, Expression[])

Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs

Crea un oggetto InvocationExpression che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

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

Parametri

expression
Expression

Oggetto Expression che rappresenta il delegato o l'espressione lambda da applicare.

arguments
Expression[]

Matrice di Expression oggetti che rappresentano gli argomenti a cui viene applicato il delegato o l'espressione lambda.

Restituisce

Oggetto InvocationExpression che applica il delegato o l'espressione lambda specificati agli argomenti forniti.

Eccezioni

expression è null.

expression. Il tipo non rappresenta un tipo delegato o un oggetto Expression<TDelegate>.

oppure

La Type proprietà di un elemento di arguments non è assegnabile al tipo del parametro corrispondente del delegato rappresentato da expression.

arguments non contiene lo stesso numero di elementi dell'elenco di parametri per il delegato rappresentato da expression.

Esempio

Nell'esempio seguente viene illustrato come utilizzare il Invoke(Expression, Expression[]) metodo per creare un oggetto InvocationExpression che rappresenta la chiamata di un'espressione lambda con argomenti specificati.

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)

Commenti

La Type proprietà dell'oggetto risultante InvocationExpression rappresenta il tipo restituito del delegato rappresentato da expression. Digitare.

La Arguments proprietà dell'oggetto risultante InvocationExpression è vuota se arguments è null. In caso contrario, contiene gli stessi elementi, arguments ad eccezione del fatto che alcuni di questi Expression oggetti possono essere racchiusi tra virgolette.

Annotazioni

Un elemento verrà racchiuso tra virgolette solo se il parametro corrispondente del delegato rappresentato da expression è di tipo Expression. Virgolette indica che l'elemento viene incluso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments.

Si applica a

Invoke(Expression, IEnumerable<Expression>)

Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs

Crea un oggetto InvocationExpression che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

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

Parametri

expression
Expression

Oggetto Expression che rappresenta il delegato o l'espressione lambda a cui applicare.

arguments
IEnumerable<Expression>

Oggetto IEnumerable<T> contenente Expression oggetti che rappresentano gli argomenti a cui viene applicato il delegato o l'espressione lambda.

Restituisce

Oggetto InvocationExpression che applica il delegato o l'espressione lambda specificati agli argomenti forniti.

Eccezioni

expression è null.

expression. Il tipo non rappresenta un tipo delegato o un oggetto Expression<TDelegate>.

oppure

La Type proprietà di un elemento di arguments non è assegnabile al tipo del parametro corrispondente del delegato rappresentato da expression.

arguments non contiene lo stesso numero di elementi dell'elenco di parametri per il delegato rappresentato da expression.

Esempio

Nell'esempio seguente viene illustrato come utilizzare il Invoke(Expression, Expression[]) metodo per creare un oggetto InvocationExpression che rappresenta la chiamata di un'espressione lambda con argomenti specificati.

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)

Commenti

La Type proprietà dell'oggetto risultante InvocationExpression rappresenta il tipo restituito del delegato rappresentato da expression. Digitare.

La Arguments proprietà dell'oggetto risultante InvocationExpression è vuota se arguments è null. In caso contrario, contiene gli stessi elementi, arguments ad eccezione del fatto che alcuni di questi Expression oggetti possono essere racchiusi tra virgolette.

Annotazioni

Un elemento verrà racchiuso tra virgolette solo se il parametro corrispondente del delegato rappresentato da expression è di tipo Expression. Virgolette indica che l'elemento viene incluso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments.

Si applica a