Expression.Invoke Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
.