Zusammenfassung der AusdrucksbaumstrukturenExpression Trees Summary

Vorheriges – Übersetzen von AusdrückenPrevious -- Translating Expressions

In dieser Serie haben Sie erfahren, wie Sie Ausdrucksbaumstrukturen verwenden können, um dynamische Programme zu erstellen, die Code wie Daten interpretieren, und um neue Funktionen basierend auf diesem Code zu erstellen.In this series, you've seen how you can use expression trees to create dynamic programs that interpret code as data and build new functionality based on that code.

Sie können Ausdrucksbaumstrukturen untersuchen, um die Absicht eines Algorithmus zu verstehen.You can examine expression trees to understand the intent of an algorithm. Sie können nicht nur diesen Code überprüfen.You can not only examine that code. Sie können neue Ausdrucksbaumstrukturen erstellen, die geänderte Versionen des ursprünglichen Codes darstellen.You can build new expression trees that represent modified versions of the original code.

Sie können auch mithilfe von Ausdrucksbaumstrukturen einen Algorithmus betrachten und den Algorithmus in eine andere Sprache oder Umgebung übersetzen.You can also use expression trees to look at an algorithm, and translate that algorithm into another language or environment.

EinschränkungenLimitations

Es gibt einige neuere C#-Sprachelemente, die nicht gut in Ausdrucksbaumstrukturen übersetzt werden.There are some newer C# language elements that don't translate well into expression trees. Ausdrucksbaumstrukturen können keine await-Ausdrücke oder async-Lambdaausdrücke enthalten.Expression trees cannot contain await expressions, or async lambda expressions. Viele der in der C# 6-Version hinzugefügten Funktionen werden nicht genau wie in den Ausdrucksbaumstrukturen geschrieben angezeigt.Many of the features added in the C# 6 release don't appear exactly as written in expression trees. Stattdessen werden neuere Funktionen in Ausdrucksbaumstrukturen in der entsprechenden früheren Syntax verfügbar gemacht.Instead, newer features will be exposed in expressions trees in the equivalent, earlier syntax. Diese sind möglicherweise nicht so sehr von einer Einschränkung betroffen, wie Sie vielleicht denken.This may not be as much of a limitation as you might think. In der Tat bedeutet dies, dass Ihr Code, der Ausdrucksbaumstrukturen interpretiert, wahrscheinlich immer noch genauso funktioniert, wenn neue Sprachfunktionen eingeführt werden.In fact, it means that your code that interprets expression trees will likely still work the same when new language features are introduced.

Trotz dieser Einschränkungen können Ausdrucksbaumstrukturen es Ihnen ermöglichen, dynamische Algorithmen zu erstellen, die sich auf das Interpretieren und Bearbeiten von Code verlassen, der als Datenstruktur dargestellt wird.Even with these limitations, expression trees do enable you to create dynamic algorithms that rely on interpreting and modifying code that is represetned as a data structure. Es ist ein leistungsfähiges Tool und eine der Funktionen des .NET-Ökosystems, die es umfangreichen Bibliotheken wie Entity Framework ermöglichen, zu erreichen, was sie tun.It's a powerful tool, and it's one of the features of the .NET ecosystem that enables rich libraries such as Entity Framework to accomplish what they do.