Compartir vía


Expression.Invoke Método

Definición

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.

Se aplica a