Expression.Invoke Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt ein InvocationExpression.
Überlädt
Invoke(Expression, Expression[]) |
Erstellt ein InvocationExpression, das einen Delegaten oder einen Lambdaausdruck auf eine Liste von Argumentausdrücken anwendet. |
Invoke(Expression, IEnumerable<Expression>) |
Erstellt ein InvocationExpression, das einen Delegaten oder einen Lambdaausdruck auf eine Liste von Argumentausdrücken anwendet. |
Invoke(Expression, Expression[])
- Quelle:
- InvocationExpression.cs
- Quelle:
- InvocationExpression.cs
- Quelle:
- InvocationExpression.cs
Erstellt ein InvocationExpression, das einen Delegaten oder einen Lambdaausdruck auf eine Liste von Argumentausdrücken anwendet.
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
Parameter
- expression
- Expression
Ein Expression, das den anzuwendenden Delegaten oder Lambda-Ausdruck darstellt.
- arguments
- Expression[]
Ein Array von Expression-Objekten, die die Argumente darstellen, auf die der Delegat oder der Lambdaausdruck angewendet wird.
Gibt zurück
Ein InvocationExpression, das den angegebenen Delegaten oder Lambdaausdruck auf die bereitgestellten Argumente anwendet.
Ausnahmen
expression
ist null
.
expression
.Type stellt keinen Delegattyp und keine Expression<TDelegate> dar.
- oder -
Die Type-Eigenschaft eines Elements von arguments
kann nicht dem Typ des entsprechenden Parameters des durch expression
dargestellten Delegaten zugeordnet werden.
arguments
enthält nicht dieselbe Anzahl an Elementen wie die Liste der Parameter für den durch expression
dargestellten Delegaten.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie die Invoke(Expression, Expression[]) -Methode verwendet wird, um eine InvocationExpression zu erstellen, die den Aufruf eines Lambdaausdrucks mit angegebenen Argumenten darstellt.
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)
Hinweise
Die Type -Eigenschaft des resultierenden InvocationExpression stellt den Rückgabetyp des Delegaten dar, der durch expression
dargestellt wird. Typ.
Die Arguments -Eigenschaft des resultierenden InvocationExpression ist leer, wenn arguments
ist null
. Andernfalls enthält er die gleichen Elemente wie arguments
, mit der Ausnahme, dass einige dieser Expression Objekte in Anführungszeichen gesetzt werden können.
Hinweis
Ein Element wird nur in Anführungszeichen gesetzt, wenn der entsprechende Parameter des Durch dargestellten expression
Delegaten vom Typ Expressionist. Anführungszeichen bedeutet, dass das Element in einen Quote Knoten umschlossen ist. Der resultierende Knoten ist ein UnaryExpression , dessen Operand -Eigenschaft das -Element von arguments
ist.
Gilt für:
Invoke(Expression, IEnumerable<Expression>)
- Quelle:
- InvocationExpression.cs
- Quelle:
- InvocationExpression.cs
- Quelle:
- InvocationExpression.cs
Erstellt ein InvocationExpression, das einen Delegaten oder einen Lambdaausdruck auf eine Liste von Argumentausdrücken anwendet.
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
Parameter
- expression
- Expression
Ein Expression, das den anzuwendenden Delegaten oder Lambdaausdruck darstellt.
- arguments
- IEnumerable<Expression>
Ein IEnumerable<T> mit den Expression-Objekten, die die Argumente darstellen, auf die der Delegat oder Lambdaausdruck angewendet wird.
Gibt zurück
Ein InvocationExpression, das den angegebenen Delegaten oder Lambdaausdruck auf die bereitgestellten Argumente anwendet.
Ausnahmen
expression
ist null
.
expression
.Type stellt keinen Delegattyp und keine Expression<TDelegate> dar.
- oder -
Die Type-Eigenschaft eines Elements von arguments
kann nicht dem Typ des entsprechenden Parameters des durch expression
dargestellten Delegaten zugeordnet werden.
arguments
enthält nicht dieselbe Anzahl an Elementen wie die Liste der Parameter für den durch expression
dargestellten Delegaten.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie die Invoke(Expression, Expression[]) -Methode verwendet wird, um eine InvocationExpression zu erstellen, die den Aufruf eines Lambdaausdrucks mit angegebenen Argumenten darstellt.
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)
Hinweise
Die Type -Eigenschaft des resultierenden InvocationExpression stellt den Rückgabetyp des Delegaten dar, der durch expression
dargestellt wird. Typ.
Die Arguments -Eigenschaft des resultierenden InvocationExpression ist leer, wenn arguments
ist null
. Andernfalls enthält er die gleichen Elemente wie arguments
, mit der Ausnahme, dass einige dieser Expression Objekte in Anführungszeichen gesetzt werden können.
Hinweis
Ein Element wird nur in Anführungszeichen gesetzt, wenn der entsprechende Parameter des Durch dargestellten expression
Delegaten vom Typ Expressionist. Anführungszeichen bedeutet, dass das Element in einen Quote Knoten umschlossen ist. Der resultierende Knoten ist ein UnaryExpression , dessen Operand -Eigenschaft das -Element von arguments
ist.