(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

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

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
Typ: System.Linq.Expressions.Expression
Ein Expression, das den anzuwendenden Delegaten oder Lambda-Ausdruck darstellt.
arguments
Typ: 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

Typ: System.Linq.Expressions.InvocationExpression
Ein InvocationExpression, das den angegebenen Delegaten oder Lambda-Ausdruck auf die bereitgestellten Argumente anwendet.
AusnahmeBedingung
ArgumentNullException

expression ist null.

ArgumentException

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.

InvalidOperationException

arguments enthält nicht dieselbe Anzahl an Elementen wie die Liste der Parameter für den durch expression dargestellten Delegaten.

Die Type-Eigenschaft der resultierenden InvocationExpression stellt den Rückgabetyp des durch expression.Type dargestellten Delegaten dar.

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

HinweisHinweis

Ein Element wird nur zitiert, wenn der entsprechende Parameter des durch expression dargestellten Delegaten den Expression-Typ aufweist. Zitieren bedeutet, dass ein Quote-Knoten das Element umschließt. Der resultierende Knoten ist ein UnaryExpression, dessen Operand-Eigenschaft das Element von arguments ist.

Im folgenden Beispiel wird veranschaulicht, wie mit der Invoke(Expression, Expression[])-Methode eine InvocationExpression erstellt wird, 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)


.NET Framework

Unterstützt in: 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.