lambda表达式就是从委托进化来的,书写方便。
形如:p=>p.Name
其中p叫做表达式参数,p.Name成为表达式体body.
动态构建lambda表达式,满足以上条件就好了.
public LambdaExpression GetLambdaExpression(string propertyName)
{
//1.创建表达式参数(指定参数或变量的类型:p)
ParameterExpression param = Expression.Parameter(typeof(Program));
//2.构建表达式体(类型包含指定的属性:p.Name)
MemberExpression body = Expression.Property(param, propertyName);
//3.根据参数和表达式体构造一个lambda表达式
return Expression.Lambda(body, param);
}