Freigeben über


Expression.Invoke Methode

Definition

Erstellt ein InvocationExpression.

Überlädt

Name Beschreibung
Invoke(Expression, Expression[])

Erstellt eine InvocationExpression Stellvertretung oder einen Lambda-Ausdruck auf eine Liste von Argumentausdrücken.

Invoke(Expression, IEnumerable<Expression>)

Erstellt eine InvocationExpression Stellvertretung oder einen Lambda-Ausdruck auf eine Liste von Argumentausdrücken.

Invoke(Expression, Expression[])

Quelle:
InvocationExpression.cs
Quelle:
InvocationExpression.cs
Quelle:
InvocationExpression.cs
Quelle:
InvocationExpression.cs
Quelle:
InvocationExpression.cs

Erstellt eine InvocationExpression Stellvertretung oder einen Lambda-Ausdruck auf eine Liste von Argumentausdrücken.

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 Wert, der den zu anwendenden Delegat- oder Lambda-Ausdruck darstellt.

arguments
Expression[]

Ein Array von Expression Objekten, die die Argumente darstellen, auf die der Delegat- oder Lambda-Ausdruck angewendet wird.

Gibt zurück

Ein Wert InvocationExpression , der den angegebenen Delegaten- oder Lambda-Ausdruck auf die bereitgestellten Argumente anwendet.

Ausnahmen

expression ist null.

expression. Der Typ stellt keinen Delegattyp oder einen Expression<TDelegate>.

- oder -

Die Type Eigenschaft eines Elements von arguments ist dem Typ des entsprechenden Parameters des durch expressiondie Stellvertretung dargestellten Delegaten nicht zuzuweisen.

arguments enthält nicht dieselbe Anzahl von Elementen wie die Liste der Parameter für den delegaten dargestellt durch expression.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die Invoke(Expression, Expression[]) Methode zum Erstellen einer InvocationExpression Methode verwendet wird, die den Aufruf eines Lambda-Ausdrucks 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 Objekts stellt den Rückgabetyp des Delegaten dar, der durch expressiondargestellt wird. Typ.

Die Arguments Eigenschaft des resultierenden InvocationExpression Ist-Werts ist leer, wenn arguments dies der Wert ist null. Andernfalls enthält sie dieselben Elemente wie arguments die Ausnahme, dass einige dieser Expression Objekte an zitiert werden können.

Hinweis

Ein Element wird nur zitiert, wenn der entsprechende Parameter des durch expression typ Expressiondargestellten Delegaten angegeben ist. Quoting bedeutet, dass das Element in einen Quote Knoten umbrochen wird. Der resultierende Knoten ist eine UnaryExpression Eigenschaft, deren Operand Eigenschaft das Element von arguments.

Gilt für:

Invoke(Expression, IEnumerable<Expression>)

Quelle:
InvocationExpression.cs
Quelle:
InvocationExpression.cs
Quelle:
InvocationExpression.cs
Quelle:
InvocationExpression.cs
Quelle:
InvocationExpression.cs

Erstellt eine InvocationExpression Stellvertretung oder einen Lambda-Ausdruck auf eine Liste von Argumentausdrücken.

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 Wert, der den delegat- oder Lambda-Ausdruck darstellt, auf den angewendet werden soll.

arguments
IEnumerable<Expression>

Ein IEnumerable<T> Objekt, das Objekte enthält Expression , die die Argumente darstellen, auf die der Delegat- oder Lambda-Ausdruck angewendet wird.

Gibt zurück

Ein Wert InvocationExpression , der den angegebenen Delegaten- oder Lambda-Ausdruck auf die bereitgestellten Argumente anwendet.

Ausnahmen

expression ist null.

expression. Der Typ stellt keinen Delegattyp oder einen Expression<TDelegate>.

- oder -

Die Type Eigenschaft eines Elements von arguments ist dem Typ des entsprechenden Parameters des durch expressiondie Stellvertretung dargestellten Delegaten nicht zuzuweisen.

arguments enthält nicht dieselbe Anzahl von Elementen wie die Liste der Parameter für den delegaten dargestellt durch expression.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die Invoke(Expression, Expression[]) Methode zum Erstellen einer InvocationExpression Methode verwendet wird, die den Aufruf eines Lambda-Ausdrucks 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 Objekts stellt den Rückgabetyp des Delegaten dar, der durch expressiondargestellt wird. Typ.

Die Arguments Eigenschaft des resultierenden InvocationExpression Ist-Werts ist leer, wenn arguments dies der Wert ist null. Andernfalls enthält sie dieselben Elemente wie arguments die Ausnahme, dass einige dieser Expression Objekte an zitiert werden können.

Hinweis

Ein Element wird nur zitiert, wenn der entsprechende Parameter des durch expression typ Expressiondargestellten Delegaten angegeben ist. Quoting bedeutet, dass das Element in einen Quote Knoten umbrochen wird. Der resultierende Knoten ist eine UnaryExpression Eigenschaft, deren Operand Eigenschaft das Element von arguments.

Gilt für: