財產

2011-07-18 216 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;