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
Invoke(Expression, Expression[]) |
Crea un objeto InvocationExpression que aplica un delegado o una expresión lambda a una lista de expresiones de argumento. |
Invoke(Expression, IEnumerable<Expression>) |
Crea un objeto InvocationExpression 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
Crea un objeto InvocationExpression 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
Objeto Expression que representa el delegado o la expresión lambda que se va a aplicar.
- arguments
- Expression[]
Matriz de objetos Expression que representan los argumentos a los que se aplica el delegado o la expresión lambda.
Devoluciones
InvocationExpression que aplica el delegado o expresión lambda especificados a los argumentos proporcionados.
Excepciones
expression
es null
.
expression
.Type no representa un tipo de delegado o Expression<TDelegate>.
o bien
La propiedad Type 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 resultante InvocationExpression está vacía si arguments
es null
. De lo contrario, contiene los mismos elementos que arguments
excepto que algunos de estos Expression objetos pueden estar entrecomillados.
Nota
Un elemento se citará solo si el parámetro correspondiente del delegado representado por expression
es de tipo Expression. Entre comillas significa que el elemento se encapsula 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
Crea un objeto InvocationExpression 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 expresión lambda a los que se aplicará.
- arguments
- IEnumerable<Expression>
IEnumerable<T> que contiene objetos Expression que representan los argumentos a los que se aplican el delegado o expresión lambda.
Devoluciones
InvocationExpression que aplica el delegado o expresión lambda especificados a los argumentos proporcionados.
Excepciones
expression
es null
.
expression
.Type no representa un tipo de delegado o Expression<TDelegate>.
o bien
La propiedad Type 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 resultante InvocationExpression está vacía si arguments
es null
. De lo contrario, contiene los mismos elementos que arguments
excepto que algunos de estos Expression objetos pueden estar entrecomillados.
Nota
Un elemento se citará solo si el parámetro correspondiente del delegado representado por expression
es de tipo Expression. Entre comillas significa que el elemento se encapsula en un Quote nodo. El nodo resultante es un UnaryExpression cuya Operand propiedad es el elemento de arguments
.