Expression.Invoke Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea una interfaz InvocationExpression.
Sobrecargas
| Nombre | Description |
|---|---|
| Invoke(Expression, Expression[]) |
Crea un InvocationExpression objeto que aplica un delegado o una expresión lambda a una lista de expresiones de argumento. |
| Invoke(Expression, IEnumerable<Expression>) |
Crea un InvocationExpression objeto que aplica un delegado o una expresión lambda a una lista de expresiones de argumento. |
Invoke(Expression, Expression[])
- Source:
- InvocationExpression.cs
- Source:
- InvocationExpression.cs
- Source:
- InvocationExpression.cs
- Source:
- InvocationExpression.cs
- Source:
- InvocationExpression.cs
Crea un InvocationExpression objeto que aplica un delegado o una expresión lambda a una lista de expresiones 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
que Expression representa el delegado o la expresión lambda que se va a aplicar.
- arguments
- Expression[]
Matriz de Expression objetos que representan los argumentos a los que se aplica la expresión lambda o del delegado.
Devoluciones
que InvocationExpression aplica el delegado especificado o la expresión lambda a los argumentos proporcionados.
Excepciones
expression es null.
expression. El tipo no representa un tipo de delegado ni un Expression<TDelegate>.
O bien
La Type propiedad de un elemento de arguments no se puede asignar al tipo del parámetro correspondiente del delegado representado por expression.
arguments no contiene el mismo número de elementos que la lista de parámetros para el delegado representado por expression.
Ejemplos
En el ejemplo siguiente se muestra cómo usar el Invoke(Expression, Expression[]) método para crear un InvocationExpression objeto que representa la invocación de una expresión lambda con 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)
Comentarios
La Type propiedad del resultante InvocationExpression representa el tipo de valor devuelto del delegado representado por expression. Tipo.
La Arguments propiedad del resultado InvocationExpression está vacía si arguments es null. De lo contrario, contiene los mismos elementos que arguments excepto que algunos de estos Expression objetos se pueden citar.
Nota:
Un elemento solo se citará si el parámetro correspondiente del delegado representado por expression es de tipo Expression. Entre comillas significa que el elemento está encapsulado en un Quote nodo. El nodo resultante es un UnaryExpression cuya Operand propiedad es el elemento de arguments.
Se aplica a
Invoke(Expression, IEnumerable<Expression>)
- Source:
- InvocationExpression.cs
- Source:
- InvocationExpression.cs
- Source:
- InvocationExpression.cs
- Source:
- InvocationExpression.cs
- Source:
- InvocationExpression.cs
Crea un InvocationExpression objeto que aplica un delegado o una expresión lambda a una lista de expresiones 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
Expression que representa el delegado o la expresión lambda a la que se va a aplicar.
- arguments
- IEnumerable<Expression>
que IEnumerable<T> contiene Expression objetos que representan los argumentos a los que se aplica la expresión lambda o del delegado.
Devoluciones
que InvocationExpression aplica el delegado especificado o la expresión lambda a los argumentos proporcionados.
Excepciones
expression es null.
expression. El tipo no representa un tipo de delegado ni un Expression<TDelegate>.
O bien
La Type propiedad de un elemento de arguments no se puede asignar al tipo del parámetro correspondiente del delegado representado por expression.
arguments no contiene el mismo número de elementos que la lista de parámetros para el delegado representado por expression.
Ejemplos
En el ejemplo siguiente se muestra cómo usar el Invoke(Expression, Expression[]) método para crear un InvocationExpression objeto que representa la invocación de una expresión lambda con 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)
Comentarios
La Type propiedad del resultante InvocationExpression representa el tipo de valor devuelto del delegado representado por expression. Tipo.
La Arguments propiedad del resultado InvocationExpression está vacía si arguments es null. De lo contrario, contiene los mismos elementos que arguments excepto que algunos de estos Expression objetos se pueden citar.
Nota:
Un elemento solo se citará si el parámetro correspondiente del delegado representado por expression es de tipo Expression. Entre comillas significa que el elemento está encapsulado en un Quote nodo. El nodo resultante es un UnaryExpression cuya Operand propiedad es el elemento de arguments.