Compartilhar via


Expression.Invoke Método

Definição

Sobrecargas

Nome Description
Invoke(Expression, Expression[])

Cria um InvocationExpression que aplica uma expressão delegada ou lambda a uma lista de expressões de argumento.

Invoke(Expression, IEnumerable<Expression>)

Cria um InvocationExpression que aplica uma expressão delegada ou lambda a uma lista de expressões de argumento.

Invoke(Expression, Expression[])

Origem:
InvocationExpression.cs
Origem:
InvocationExpression.cs
Origem:
InvocationExpression.cs
Origem:
InvocationExpression.cs
Origem:
InvocationExpression.cs

Cria um InvocationExpression que aplica uma expressão delegada ou lambda a uma lista de expressões de argumento.

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

Parâmetros

expression
Expression

Um Expression que representa a expressão delegada ou lambda a ser aplicada.

arguments
Expression[]

Uma matriz de Expression objetos que representam os argumentos aos quais a expressão delegada ou lambda é aplicada.

Retornos

Um InvocationExpression que aplica a expressão delegada ou lambda especificada aos argumentos fornecidos.

Exceções

expression é null.

expression. O tipo não representa um tipo de delegado ou um Expression<TDelegate>.

- ou -

A Type propriedade de um elemento de arguments não é atribuível ao tipo do parâmetro correspondente do delegado representado por expression.

arguments não contém o mesmo número de elementos que a lista de parâmetros para o delegado representado por expression.

Exemplos

O exemplo a seguir demonstra como usar o Invoke(Expression, Expression[]) método para criar um InvocationExpression que representa a invocação de uma expressão lambda com argumentos especificados.

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)

Comentários

A Type propriedade do resultado InvocationExpression representa o tipo de retorno do delegado representado por expression. Tipo.

A Arguments propriedade do resultado InvocationExpression estará vazia se arguments for null. Caso contrário, ele contém os mesmos elementos arguments , exceto que alguns desses Expression objetos podem ser citados.

Observação

Um elemento será citado somente se o parâmetro correspondente do delegado representado por expression for do tipo Expression. Aspas significam que o elemento está encapsulado em um Quote nó. O nó resultante é uma UnaryExpression propriedade cuja Operand propriedade é o elemento de arguments.

Aplica-se a

Invoke(Expression, IEnumerable<Expression>)

Origem:
InvocationExpression.cs
Origem:
InvocationExpression.cs
Origem:
InvocationExpression.cs
Origem:
InvocationExpression.cs
Origem:
InvocationExpression.cs

Cria um InvocationExpression que aplica uma expressão delegada ou lambda a uma lista de expressões de argumento.

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

Parâmetros

expression
Expression

Um Expression que representa a expressão delegada ou lambda a ser aplicada.

arguments
IEnumerable<Expression>

Um IEnumerable<T> que contém Expression objetos que representam os argumentos aos quais a expressão delegada ou lambda é aplicada.

Retornos

Um InvocationExpression que aplica a expressão delegada ou lambda especificada aos argumentos fornecidos.

Exceções

expression é null.

expression. O tipo não representa um tipo de delegado ou um Expression<TDelegate>.

- ou -

A Type propriedade de um elemento de arguments não é atribuível ao tipo do parâmetro correspondente do delegado representado por expression.

arguments não contém o mesmo número de elementos que a lista de parâmetros para o delegado representado por expression.

Exemplos

O exemplo a seguir demonstra como usar o Invoke(Expression, Expression[]) método para criar um InvocationExpression que representa a invocação de uma expressão lambda com argumentos especificados.

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)

Comentários

A Type propriedade do resultado InvocationExpression representa o tipo de retorno do delegado representado por expression. Tipo.

A Arguments propriedade do resultado InvocationExpression estará vazia se arguments for null. Caso contrário, ele contém os mesmos elementos arguments , exceto que alguns desses Expression objetos podem ser citados.

Observação

Um elemento será citado somente se o parâmetro correspondente do delegado representado por expression for do tipo Expression. Aspas significam que o elemento está encapsulado em um Quote nó. O nó resultante é uma UnaryExpression propriedade cuja Operand propriedade é o elemento de arguments.

Aplica-se a