Condividi tramite


Expression.Invoke Metodo

Definizione

Crea un oggetto InvocationExpression.

Overload

Invoke(Expression, Expression[])

Crea un oggetto InvocationExpression che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

Invoke(Expression, IEnumerable<Expression>)

Crea un oggetto InvocationExpression che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

Invoke(Expression, Expression[])

Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs

Crea un oggetto InvocationExpression che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

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

Parametri

expression
Expression

Oggetto Expression che rappresenta il delegato o l'espressione lambda da applicare.

arguments
Expression[]

Matrice di oggetti Expression che rappresentano gli argomenti ai quali viene applicato il delegato o l'espressione lambda.

Restituisce

Oggetto InvocationExpression che applica il delegato o l'espressione lambda specificata agli argomenti forniti.

Eccezioni

expression è null.

expression.Type non rappresenta un tipo delegato o Expression<TDelegate>.

-oppure-

La proprietà Type di un elemento di arguments non è assegnabile al tipo del parametro corrispondente del delegato rappresentato da expression.

Il numero di elementi in arguments è diverso dal numero di parametri elencato per il delegato rappresentato da expression.

Esempio

Nell'esempio seguente viene illustrato come utilizzare il Invoke(Expression, Expression[]) metodo per creare un InvocationExpression oggetto che rappresenta la chiamata di un'espressione lambda con argomenti specificati.

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)

Commenti

La Type proprietà dell'oggetto risultante InvocationExpression rappresenta il tipo restituito del delegato rappresentato da expression. Digitare.

La Arguments proprietà dell'oggetto risultante InvocationExpression è vuota se arguments è null. In caso contrario, contiene gli stessi elementi, arguments ad eccezione del fatto che alcuni di questi Expression oggetti possono essere racchiusi tra virgolette.

Nota

Un elemento verrà racchiuso tra virgolette solo se il parametro corrispondente del delegato rappresentato da expression è di tipo Expression. Virgolette significa che l'elemento viene racchiuso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments.

Si applica a

Invoke(Expression, IEnumerable<Expression>)

Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs
Origine:
InvocationExpression.cs

Crea un oggetto InvocationExpression che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

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

Parametri

expression
Expression

Oggetto Expression che rappresenta il delegato o l'espressione lambda da applicare.

arguments
IEnumerable<Expression>

Oggetto IEnumerable<T> contenente gli oggetti Expression che rappresentano gli argomenti ai quali viene applicato il delegato o l'espressione lambda.

Restituisce

Oggetto InvocationExpression che applica il delegato o l'espressione lambda specificata agli argomenti forniti.

Eccezioni

expression è null.

expression.Type non rappresenta un tipo delegato o Expression<TDelegate>.

-oppure-

La proprietà Type di un elemento di arguments non è assegnabile al tipo del parametro corrispondente del delegato rappresentato da expression.

Il numero di elementi in arguments è diverso dal numero di parametri elencato per il delegato rappresentato da expression.

Esempio

Nell'esempio seguente viene illustrato come utilizzare il Invoke(Expression, Expression[]) metodo per creare un InvocationExpression oggetto che rappresenta la chiamata di un'espressione lambda con argomenti specificati.

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)

Commenti

La Type proprietà dell'oggetto risultante InvocationExpression rappresenta il tipo restituito del delegato rappresentato da expression. Digitare.

La Arguments proprietà dell'oggetto risultante InvocationExpression è vuota se arguments è null. In caso contrario, contiene gli stessi elementi, arguments ad eccezione del fatto che alcuni di questi Expression oggetti possono essere racchiusi tra virgolette.

Nota

Un elemento verrà racchiuso tra virgolette solo se il parametro corrispondente del delegato rappresentato da expression è di tipo Expression. Virgolette significa che l'elemento viene racchiuso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments.

Si applica a