财产

2011-07-18 167 views
0

隐式表达,我知道我可以写下面生成lambda表达式:财产

Expression<Func<string, bool>> lambda = s => s.Length == 5; 

但有什么办法来自动生成性能体现在哪里?换句话说就是有这样的强类型的模拟:

var property = Expression.Property("Name") 

回答

3

这会给你一个lambda返回的Length属性:

Expression<Func<string, int>> lambda = s => s.Length; 

如果你不想完全拉姆达,但只它访问属性MemberExpression,你可以这样做:

var propertyExpression = (MemberExpression)lambda.Body; 
1
Expressions<Func<ClassWithProperty, PropertyReturnType>> lambda = C => C.Name;