Expression Tree Basic C# with Example



Expression Tree Basic C# with Example

Expression trees represent code in a tree-like data structure, where each node is an expression 
Expression Trees enables dynamic modification of executable code, the execution of LINQ queries in various 
databases, and the creation of dynamic queries. You can compile and run code represented by expression trees. 
These are also used in the dynamic language run-time (DLR) to provide interoperability between dynamic languages 
and the .NET Framework and to enable compiler writers to emit expression trees instead of Microsoft intermediate 
language (MSIL). 
Expression Trees can be created Via 
1. Anonymous lambda expression, 
2. Manually by using the System.Linq.Expressions namespace. 
Expression Trees from Lambda Expressions 
When a lambda expression is assigned to Expression type variable , the compiler emits code to build an expression 
tree that represents the lambda expression. 
The following code examples shows how to have the C# compiler create an expression tree that represents the 
lambda expression num => num < 5. 
Expression> lambda = num => num < 5; 
Expression Trees by Using the API 
Expression Trees also created using the Expression Class. This class contains static factory methods that create 
expression tree nodes of specific types. 
Below are few type of Tree nodes. 
1. ParameterExpression 
2. MethodCallExpression 
 

The following code example shows how to create an expression tree that represents the lambda expression num 
=> num < 5 by using the API. 
ParameterExpression numParam = Expression.Parameter(typeof(int), "num"); 
ConstantExpression five = Expression.Constant(5, typeof(int)); 
BinaryExpression numLessThanFive = Expression.LessThan(numParam, five); 
Expression> lambda1 = Expression.Lambda>(numLessThanFive,new 
ParameterExpression[] { numParam }); 

0 Comment's

Comment Form