Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Expression.Invoke (Expression, Expression[])

 

Data di pubblicazione: novembre 2016

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

Spazio dei nomi:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static InvocationExpression Invoke(
	Expression expression,
	params Expression[] arguments
)

Parametri

expression
Type: System.Linq.Expressions.Expression

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

arguments
Type: System.Linq.Expressions.Expression[]

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

Valore restituito

Type: System.Linq.Expressions.InvocationExpression

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

Exception Condition
ArgumentNullException

expression è null.

ArgumentException

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

-oppure-

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

InvalidOperationException

arguments non contiene lo stesso numero di elementi come l'elenco dei parametri per il delegato rappresentato da expression.

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

Il Arguments proprietà dell'oggetto risultante InvocationExpression è vuoto se arguments è null. In caso contrario, contiene gli stessi elementi arguments tranne che alcuni di questi Expression gli oggetti possono essere tra virgolette.

System_CAPS_noteNota

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

Nell'esempio seguente viene illustrato come utilizzare il Invoke(Expression, Expression[]) metodo per creare un InvocationExpression che rappresenta la chiamata di un'espressione lambda con gli 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)

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: