C # Dynamische Methode - IL vs Expression Trees

8

Ich spiele und lerne wenig mit ANTLR, indem ich eine einfache DSL für .NET erstelle, die das Skript in String in Dynamische Methode umwandelt. Meine erste Idee war die Übersetzung in IL-Opcodes, aber jetzt lese ich über Expression-Bäume für die DM-Erstellung. Es scheint, dass ich jede Methode mit Expression-Bäumen erzeugen kann, genau wie IL-Code?

Danke!

Code: Ссылка

    
Ricardo 01.02.2013, 00:39
quelle

1 Antwort

9

IL Code gibt Ihnen ein wenig mehr Power. Zum Beispiel können Sie damit Code ausgeben, der für die .NET CLR korrekt ist, aber nicht unbedingt etwas, das Sie in C # oder VB.NET geschrieben haben könnten.

Aber im Allgemeinen, ja, sollten Sie in der Lage sein, alles zu tun, was Sie mit Ausdrucksbäumen tun wollen, und sie sind viel einfacher, Ihren Kopf einzuwickeln.

Das Ausgeben von IL-Code wird wahrscheinlich etwas schneller ablaufen als das Kompilieren eines Ausdrucksbaums. Ich würde mir darüber keine Sorgen machen (vorzeitige Optimierung), aber es ist erwähnenswert. Siehe Wie wirkt sich eine dynamische Variable auf die Leistung aus? für einige Leistungsspezifikationen.

>     
StriplingWarrior 01.02.2013 00:41
quelle

Tags und Links