Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Expression.Invoke-Methode: (Expression, IEnumerable<Expression>)

 

Veröffentlicht: Oktober 2016

Erstellt ein InvocationExpression, das einen Delegaten oder einen Lambda-Ausdruck auf eine Liste von Argumentausdrücken anwendet.

Namespace:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static InvocationExpression Invoke(
	Expression expression,
	IEnumerable<Expression> arguments
)

Parameter

expression
Type: System.Linq.Expressions.Expression

Ein Expression, das den anzuwendenden Delegaten oder Lambda-Ausdruck darstellt.

arguments
Type: System.Collections.Generic.IEnumerable<Expression>

Ein IEnumerable<T> mit den Expression-Objekten, die die Argumente darstellen, auf die der Delegat oder Lambda-Ausdruck angewendet wird.

Rückgabewert

Type: System.Linq.Expressions.InvocationExpression

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

Exception Condition
ArgumentNullException

expression ist null.

ArgumentException

expression. Type stellt keinen Delegattyp dar oder Expression<TDelegate>.

- oder -

Die Type Eigenschaft eines Elements von arguments lässt sich nicht in den Typ des entsprechenden Parameters des durch dargestellten Delegaten expression.

InvalidOperationException

arguments enthält nicht die gleiche Anzahl von Elementen wie die Liste der Parameter für den Delegaten dargestellte expression.

Die Type -Eigenschaft der resultierenden InvocationExpression stellt den Rückgabetyp des Delegaten, der durch dargestellten expression. Geben Sie ein.

Die Arguments -Eigenschaft der resultierenden InvocationExpression ist leer, wenn arguments ist null. Andernfalls enthält sie die gleichen Elemente wie arguments wobei einige dieser Expression Objekte möglicherweise in Anführungszeichen.

System_CAPS_noteHinweis

Ein Element wird in Anführungszeichen eingeschlossen werden nur dann, wenn der entsprechende Parameter des Delegaten durch dargestellt expression ist vom Datentyp Expression. Zitieren bedeutet, dass das Element umschließt ein Quote Knoten. Der resultierende Knoten ist ein UnaryExpression dessen Operand Eigenschaft ist für das Element der arguments.

Im folgenden Beispiel wird veranschaulicht, wie die Invoke(Expression, Expression[]) Methode zum Erstellen einer InvocationExpression 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)

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: