Expression.Invoke Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um InvocationExpression.
Sobrecargas
Invoke(Expression, Expression[]) |
Cria um InvocationExpression que se aplica a uma expressão de delegado ou lambda para uma lista de expressões de argumento. |
Invoke(Expression, IEnumerable<Expression>) |
Cria um InvocationExpression que se aplica a uma expressão de delegado ou lambda para uma lista de expressões de argumento. |
Invoke(Expression, Expression[])
- Origem:
- InvocationExpression.cs
- Origem:
- InvocationExpression.cs
- Origem:
- InvocationExpression.cs
Cria um InvocationExpression que se aplica a uma expressão de delegado ou lambda para 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 de delegado ou lambda a ser aplicada.
- arguments
- Expression[]
Uma matriz de objetos Expression que representam os argumentos aos quais que a expressão de delegado ou lambda são aplicados.
Retornos
Um InvocationExpression que se aplica à expressão de delegado ou lambda especificada para os argumentos fornecidos.
Exceções
expression
é null
.
expression
.Type não representa um tipo de delegado nem um Expression<TDelegate>.
- ou -
A propriedade Type de um elemento de arguments
não é atribuível ao tipo de parâmetro correspondente ao delegado representado por expression
.
arguments
não contém o mesmo número de elementos da 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 resultante InvocationExpression representa o tipo de retorno do delegado representado por expression
. Tipo.
A Arguments propriedade do resultante InvocationExpression estará vazia se arguments
for null
. Caso contrário, ele contém os mesmos elementos arguments
que, 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 é encapsulado em um Quote nó. O nó resultante é um UnaryExpression cuja Operand propriedade é o elemento de arguments
.
Aplica-se a
Invoke(Expression, IEnumerable<Expression>)
- Origem:
- InvocationExpression.cs
- Origem:
- InvocationExpression.cs
- Origem:
- InvocationExpression.cs
Cria um InvocationExpression que se aplica a uma expressão de delegado ou lambda para 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 de delegado ou lambda à qual aplicar.
- arguments
- IEnumerable<Expression>
Um IEnumerable<T> que contém objetos Expression que representam os argumentos aos quais a expressão de delegado ou lambda é aplicada.
Retornos
Um InvocationExpression que se aplica à expressão de delegado ou lambda especificada para os argumentos fornecidos.
Exceções
expression
é null
.
expression
.Type não representa um tipo de delegado nem um Expression<TDelegate>.
- ou -
A propriedade Type de um elemento de arguments
não é atribuível ao tipo de parâmetro correspondente ao delegado representado por expression
.
arguments
não contém o mesmo número de elementos da 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 resultante InvocationExpression representa o tipo de retorno do delegado representado por expression
. Tipo.
A Arguments propriedade do resultante InvocationExpression estará vazia se arguments
for null
. Caso contrário, ele contém os mesmos elementos arguments
que, 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 é encapsulado em um Quote nó. O nó resultante é um UnaryExpression cuja Operand propriedade é o elemento de arguments
.