class FirstExpressionTree
{
static void Main()//表达式树 非常简单的表达式树,2和3相加 c#3
{
Expression firstArg = Expression.Constant(2);
Expression secondArg = Expression.Constant(3);
Expression add = Expression.Add(firstArg, secondArg);
Console.WriteLine(add);
}
}
.NET 3.5的表达式树提供了一种抽象的方式将一些代码表示成一个对象树。类似于
CodeDom,但是在稍高的级别上操作。 表达式树主要用于LINQ。
C#3将 Lambda表达式转换成 表达式树提供了内建的支持。
以编程方式构建表达式树,树中每个节点本身都是一个表达式。不同的表达式类型代表
能在代码中执行的不同操作:二元操作(例如加法),一元操作(例如 获取一个数组的长度),
方法调用,构造函数调用,等等。
表达式树类覆盖了 ToString来产生可读的输出
add BinaryExpression NodeType = Add Type=System.Int32
左 firstArg ConstantExpression NodeType = Constant
Type=System.Int32 Value=2
右 secondArg ConstantExpression NodeType = Constant
Type=System.Int32 Value=3
输出
(2 + 3)