.net - What is the benefit of Expression Trees? -


while developing applications using .net language, not getting use or benefit of expression tree? necessary ?

an expression tree allows express code in regular c#, deconstruct that, inspect it, , interpret it. example, might interpret writing equivalent tsql string (example: linq-to-sql or entity framework), or web-service query (astoria). might interpret rpc call (i've written expression-based rpc layer).

to repeat my "explaining expression" blog entry:

  • the delegate version (func<int,int,bool>) beligerant manager; "i need give me way 2 integers bool; don't care how - when i'm ready, i'll ask - , can tell me answer".
  • the expression version (expr<func<int,int,bool>>) dutiful analyst; "i need explain me - if gave 2 integers, how go giving me bool?"

if have expression, can either call compile() form delegate (to explained), or can unpick , similar based on steps took.


another view on expression can act simplified version of ilgenerator - still pretty versatile. useful meta-programming. here's an article exploring approach.


Comments