-
以编程方式构建表达式树
- System.Linq.Expressions命名空间包含了代表表达式的各个类,它们都继承自Expression
- Expression类包含两个属性
- Type属性代表表达式求值后的.NET类型,可把它视为一个返回类型,例如,如果一个表达式要获取一个字符串的Length属性,该表达式的类型是int。
- NodeType属性返回所代表的表达式的种类。它是ExpressionType枚举的成员,包括LessThan, Multiply和Invoke等。仍然使用上面的例子,对于MyString.Length这个属性访问来说,其节点类型是MemberAccess。
private static void TestExpression()
{
Expression firstArg = Expression.Constant(2);
Expression secondArg = Expression.Constant(3);
Expression add = Expression.Add(firstArg, secondArg);
Console.WriteLine(add);
}
-
将表达式树编译成委托