Was ist die maximale Bäume LINQ Expression tun kann?
-
07-07-2019 - |
Frage
Was ist die maximun dass LINQ Ausdruck Baum tun?
Kann es eine Klasse definieren? Wie wäre es ein Verfahren, mit all dem angegebenen Namen, Modifikatoren, Parametertype und Rückgabetyp?
Muss das Programm definiert immer den Baum selbst? Ist es möglich, den Baum von einer bestimmten C # Datei zu generieren?
Wo kann ich Ressourcen über das Schreiben von einfachen bis zu Expression Baum und Expression Baumes Besucher zu lernen? (Artikel und Videos werden groß sein)
Vielen Dank für diejenigen, die in der Lage sind zu helfen ...
Lösung
In C # 3, Ausdruck Bäume darstellen Ausdrücke . Daher der Name. Und sie werden weiter auf eine Teilmenge von C # Ausdrücke beschränkt -. Keine Zuordnung Ausdrücke, keine Ausdrücke Zeigertypen beteiligt, und so weiter
In den Bibliotheken, die mit C # 4 versenden, haben wir den Ausdruck Baum Bibliothek erweitert auch Aussage Bäume zu unterstützen. Allerdings wird C # 4 nicht automatisch eine Erklärung-Lambda in einen „Anweisung Baum“.
übersetzenDas ist eine offensichtliche und nützliche Funktion, die wir einfach nicht die Zeit zu bekommen hatten für C # 4. Wir es für hypothetische zukünftige Versionen berücksichtigen würden. Wenn Sie ein wirklich großes Benutzerszenario für Aussage Bäume haben, würde ich gerne hören.
Die offensichtliche weitere Verlängerung auf, dass alle Erklärung Bäume, die Klassendeklarationen, struct Erklärungen, und so weiter darstellen würde. Mit Gesamt Homoikonizität zwischen der Sprache C # und der Ausdrucksbaum Bibliothek wäre genial. Es würde alle möglichen interessanten metaprogramming Szenarien ermöglichen. Aber das wird nicht so bald passieren, also nicht bekommen Ihre Hoffnungen. Das ist eher ein langfristiger Traum von mir, die nie passieren könnten.
Andere Tipps
Expression Bäume:
http://www.interact-sw.co .uk / iangblog / 2005/09/30 / expressiontrees
http://www.davidhayden.com/blog/ dave / Archiv / 2006/12/18 / ExpressionTrees.aspx
http://msdn.microsoft.com/en-us/library/bb397951. aspx
http://community.bartdesmet.net/blogs/bart/archive/2006/11/22/Getting-started-with-C_2300_-3.0-Expression-Trees.aspx
http: // blah .winsmarts.com / 2006/05/23 / demystifying-c-30 - Teil-7-Ausdruck-trees.aspx
Besuchermuster:
http://www.dofactory.com/Patterns/PatternVisitor.aspx
http://en.wikipedia.org/wiki/Visitor_pattern