In C# 3 können Ausdrucksbäume Folgendes darstellen Ausdrücke . Daher auch der Name. Außerdem sind sie auf eine Teilmenge von C#-Ausdrücken beschränkt - keine Zuweisungsausdrücke, keine Ausdrücke, die Zeigertypen beinhalten, und so weiter.
In den Bibliotheken, die mit C# 4 ausgeliefert werden, haben wir den Ausdrucksbaum erweitert Bibliothek um auch Erklärungsbäume zu unterstützen. Allerdings wird C# 4 ein Anweisungs-Lambda NICHT automatisch in einen "Anweisungsbaum" übersetzen.
Das ist eine offensichtliche und nützliche Funktion, für die wir bei C# 4 einfach keine Zeit hatten. Wir werden sie für hypothetische zukünftige Versionen in Betracht ziehen. Wenn Sie ein wirklich tolles Benutzerszenario für Anweisungsbäume haben, würde ich es gerne hören.
Die offensichtliche Erweiterung zu all dem sind Deklarationsbäume, die Klassendeklarationen, Strukturdeklarationen usw. darstellen würden. Mit totale Homoikonizität zwischen der Sprache C# und der Expression Tree Library wäre großartig. Es würde alle Arten von interessanten Metaprogrammierungsszenarien ermöglichen. Aber das wird in nächster Zeit nicht passieren, also machen Sie sich keine Hoffnungen. Das ist eher ein langfristiger Traum von mir, der vielleicht nie Wirklichkeit wird.