//相当于nameof
public class Nameof<T>
{
public static string Property<TProp>(Expression<Func<T, TProp>> expression)
{
var body = expression.Body as MemberExpression;
if (body == null)
throw new ArgumentException("'expression' should be a member expression");
return body.Member.Name;
}
}
因为遇到的情况都是针对某一集合进行,主要对lambda表达式进行学习;在其中可能遇到的一些表达式类型
ConstantExpression: 常量表达式
ParameterExpression: 参数表达式
UnaryExpression: 一元运算符表达式
BinaryExpression: 二元运算符表达式
TypeBinaryExpression: is运算符表达式
ConditionalExpression: 条件表达式
MemberExpression: 访问字段或属性表达式
MethodCallExpression: 调用成员函数表达式
Expression