Expression.Invoke Méthode

Définition

Crée un objet InvocationExpression.

Surcharges

Invoke(Expression, Expression[])

Crée un InvocationExpression qui applique un délégué ou une expression lambda à une liste d'expressions d'arguments.

Invoke(Expression, IEnumerable<Expression>)

Crée un InvocationExpression qui applique un délégué ou une expression lambda à une liste d'expressions d'arguments.

Invoke(Expression, Expression[])

Source:
InvocationExpression.cs
Source:
InvocationExpression.cs
Source:
InvocationExpression.cs

Crée un InvocationExpression qui applique un délégué ou une expression lambda à une liste d'expressions d'arguments.

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

Paramètres

expression
Expression

Expression qui représente le délégué ou l’expression lambda à appliquer.

arguments
Expression[]

Tableau d'objets Expression qui représentent les arguments auxquels le délégué ou l'expression lambda est appliquée.

Retours

InvocationExpression qui applique le délégué ou l’expression lambda spécifiés aux arguments fournis.

Exceptions

expression a la valeur null.

expression.Type ne représente pas un type délégué ou un Expression<TDelegate>.

- ou -

La propriété Type d'un élément de arguments ne peut pas être assignée au type du paramètre correspondant du délégué représenté par expression.

arguments ne contient pas le même nombre d'éléments que la liste de paramètres pour le délégué représenté par expression.

Exemples

L’exemple suivant montre comment utiliser la Invoke(Expression, Expression[]) méthode pour créer un InvocationExpression qui représente l’appel d’une expression lambda avec des arguments spécifiés.

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)

Remarques

La Type propriété du résultat InvocationExpression représente le type de retour du délégué représenté par expression. Type.

La Arguments propriété du résultat InvocationExpression est vide si arguments a la valeur null. Sinon, il contient les mêmes éléments que arguments , sauf que certains de ces Expression objets peuvent être entre guillemets.

Notes

Un élément est entre guillemets uniquement si le paramètre correspondant du délégué représenté par expression est de type Expression. Les guillemets signifient que l’élément est encapsulé dans un Quote nœud. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément de arguments.

S’applique à

Invoke(Expression, IEnumerable<Expression>)

Source:
InvocationExpression.cs
Source:
InvocationExpression.cs
Source:
InvocationExpression.cs

Crée un InvocationExpression qui applique un délégué ou une expression lambda à une liste d'expressions d'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);
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

Paramètres

expression
Expression

Expression qui représente l'expression lambda ou le délégué auquel appliquer.

arguments
IEnumerable<Expression>

IEnumerable<T> qui contient des objets Expression représentant les arguments auxquels le délégué ou l'expression lambda sont appliqués.

Retours

InvocationExpression qui applique le délégué ou l’expression lambda spécifiés aux arguments fournis.

Exceptions

expression a la valeur null.

expression.Type ne représente pas un type délégué ou un Expression<TDelegate>.

- ou -

La propriété Type d'un élément de arguments ne peut pas être assignée au type du paramètre correspondant du délégué représenté par expression.

arguments ne contient pas le même nombre d'éléments que la liste de paramètres pour le délégué représenté par expression.

Exemples

L’exemple suivant montre comment utiliser la Invoke(Expression, Expression[]) méthode pour créer un InvocationExpression qui représente l’appel d’une expression lambda avec des arguments spécifiés.

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)

Remarques

La Type propriété du résultat InvocationExpression représente le type de retour du délégué représenté par expression. Type.

La Arguments propriété du résultat InvocationExpression est vide si arguments a la valeur null. Sinon, il contient les mêmes éléments que arguments , sauf que certains de ces Expression objets peuvent être entre guillemets.

Notes

Un élément est entre guillemets uniquement si le paramètre correspondant du délégué représenté par expression est de type Expression. Les guillemets signifient que l’élément est encapsulé dans un Quote nœud. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément de arguments.

S’applique à