Praktischer Einsatz von Expressionsbäumen

c# expression-trees

Frage

Ausdrucksbäume sind eine nette Eigenschaft, aber was sind ihre praktischen Verwendungsmöglichkeiten? Können sie für irgendeine Art von Codegenerierung oder Metaprogrammierung oder dergleichen verwendet werden?

Expertenantwort

Wie Jon bemerkt, verwende ich sie, um generische Operatoren mit .NET 3.5 bereitzustellen. Ich benutze sie auch (wieder in MiscUtil), um einen schnellen Zugriff auf nicht standardmäßige Konstruktoren zu ermöglichen (Sie können Delegate.CreateDelegate mit Konstruktoren verwenden, aber Expression funktioniert einwandfrei).

Andere Verwendungen von manuell erstellten Ausdrucksbäumen:

Aber wirklich, Expression ist eine sehr vielseitige Möglichkeit, dynamischen Code zu schreiben. Viel einfacher als Reflection.Emit und für mein Geld, einfacher zu verstehen als CodeDOM. Und in .NET 4.0 haben Sie noch mehr Optionen zur Verfügung. Ich zeige die Grundlagen des Schreibens von Code über Expression in meinem Blog .


Beliebte Antwort

Marc Gravell hat sie in MiscUtil sehr erfolgreich eingesetzt , um generische Operatoren zu implementieren.




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum