Compartir vía


Expression.Invoke Método

Definición

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.

Se aplica a