(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

Expression<TDelegate>-Klasse

Stellt einen stark typisierten Lambdaausdruck als Datenstruktur in Form einer Ausdrucksbaumstruktur dar. Diese Klasse kann nicht vererbt werden.

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

generic<typename TDelegate>
public ref class Expression sealed : public LambdaExpression

Typparameter

TDelegate

Der Typ des Delegaten, der die Expression(TDelegate) darstellt.

Der Expression<TDelegate>-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsBodyRuft den Text des Lambdaausdrucks ab. (Von LambdaExpression geerbt.)
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCanReduceGibt an, dass der Knoten zu einem einfacheren Knoten reduziert werden kann. Wenn true zurückgegeben wird, kann Reduce() aufgerufen werden, um das reduzierte Formular zu erzeugen. (Von Expression geerbt.)
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsNameRuft den Namen des Lambdaausdrucks ab. (Von LambdaExpression geerbt.)
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsNodeTypeGibt den Knotentyp dieses Expression zurück. (Von LambdaExpression geerbt.)
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsParametersRuft die Parameter des Lambdaausdrucks ab. (Von LambdaExpression geerbt.)
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReturnTypeRuft den Rückgabetyp des Lambdaausdrucks ab. (Von LambdaExpression geerbt.)
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsTailCallRuft den Wert ab, der angibt, ob der Lambdaausdruck mit der Endeaufrufoptimierung kompiliert wird. (Von LambdaExpression geerbt.)
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsTypeRuft den statischen Typ des Ausdrucks ab, den diese Expression darstellt. (Von LambdaExpression geerbt.)
Zum Seitenanfang

  NameBeschreibung
Geschützte MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsAcceptSendet an die spezifische Visit-Methode für diesen Knotentyp. Beispielsweise wird VisitMethodCall von MethodCallExpression aufgerufen. (Von Expression geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCompile()Kompiliert den von der Ausdrucksbaumstruktur beschriebenen Lambda-Ausdruck in ausführbaren Code und erzeugt einen Delegaten, der den Lambda-Ausdruck darstellt.
Öffentliche MethodeCompile(DebugInfoGenerator)Erzeugt einen Delegaten, der den Lambdaausdruck darstellt.
Öffentliche MethodeCompileToMethod(MethodBuilder)Kompiliert den Lambdaausdruck in eine Methodendefinition. (Von LambdaExpression geerbt.)
Öffentliche MethodeCompileToMethod(MethodBuilder, DebugInfoGenerator)Kompiliert den Lambdaausdruck in eine Methodendefinition und benutzerdefinierte Debuginformationen. (Von LambdaExpression geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReduceReduziert diesen Knoten zu einem einfacheren Ausdruck. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss. (Von Expression geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReduceAndCheckReduziert diesen Knoten zu einem einfacheren Ausdruck. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss. (Von Expression geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReduceExtensionsReduziert den Ausdruck zu einem bekannten Knotentyp (kein Erweiterungsknoten) oder gibt nur den Ausdruck zurück, wenn es sich um einen bereits bekannten Typ handelt. (Von Expression geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringGibt eine Textdarstellung der Expression zurück. (Von Expression geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsUpdateErstellt einen neuen Ausdruck wie diesen, verwendet jedoch die angegebenen untergeordneten Elemente. Wenn alle untergeordneten Elemente übereinstimmen, wird der Ausdruck zurückgegeben.
Geschützte MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsVisitChildrenReduziert den Knoten und ruft dann den Visitor-Delegaten für den reduzierten Ausdruck auf. Die Methode löst eine Ausnahme aus, wenn der Knoten nicht reduziert werden kann. (Von Expression geerbt.)
Zum Seitenanfang

Wenn ein Lambdaausdruck einer Variablen, einem Feld oder einem Parameter zugewiesen wird, deren bzw. dessen Typ Expression(TDelegate) ist, gibt der Compiler Anweisungen zum Erstellen einer Ausdrucksbaumstruktur aus.

HinweisHinweis

Eine Konvertierung aus einem Lambdaausdruck in den Typ Expression<D> (Expression(Of D) in Visual Basic) erfolgt, wenn eine Konvertierung aus dem Lambdaausdruck in einen Delegaten vom D ausgeführt wird. Möglicherweise tritt jedoch ein Fehler bei der Konvertierung auf, beispielsweise, wenn der Text des Lambdaausdrucks ein Block ist. Dies bedeutet, dass Delegaten und Ausdrucksbaumstrukturen ein ähnliches Verhalten in Bezug auf die Auflösung von Überladungen aufweisen.

Die Ausdrucksbaumstruktur ist eine speicherinterne Datendarstellung des Lambdaausdrucks. Durch die Ausdrucksbaumstruktur wird die Struktur des Lambdaausdrucks transparent und explizit festgelegt. Sie können mit den Daten in der Ausdrucksbaumstruktur ebenso wie mit jeder anderen Datenstruktur interagieren.

Durch die Fähigkeit, Ausdrücke als Datenstrukturen zu behandeln, können APIs Benutzercode in einem Format empfangen, das auf benutzerdefinierte Weise analysiert, transformiert und verarbeitet werden kann. Die LINQ to SQL-Datenzugriffsimplementierung nutzt diese Fähigkeit beispielsweise, um Ausdrucksbaumstrukturen in Transact-SQL-Anweisungen umzuwandeln, die von der Datenbank ausgewertet werden können.

Viele in der Queryable-Klasse definierte Standardabfrageoperatoren weisen einen oder mehrere Parameter vom Typ Expression(TDelegate) auf.

Der NodeType einer Expression(TDelegate) ist Lambda.

Erstellen Sie mithilfe der Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)-Methode oder der Lambda<TDelegate>(Expression, array<ParameterExpression>)-Methode ein Expression(TDelegate)-Objekt.

Im folgenden Codebeispiel wird veranschaulicht, wie ein Lambdaausdruck sowohl als ausführbarer Code in Form eines Delegaten als auch als Daten in Form einer Ausdrucksbaumstruktur dargestellt wird. Darüber hinaus wird veranschaulicht, wie die Ausdrucksbaumstruktur mithilfe der Compile-Methode zurück in ausführbaren Code umgewandelt wird.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 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

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 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)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft