方法一的調(diào)用如下:
var propertyName = GetPropertyName<Category>(x => x.Parent.Parent.Parent.Name);
那方法二該怎么調(diào)用呢 ?就是參數(shù)(Expression<Func<T, object>>[]?)該怎么傳啊 ?
?方法一:
protected string GetPropertyName<T>(Expression<Func<T, object>> expression)
{
return ReflectionHelper.GetPropertyNameFromExpression(expression);
}
//方法二:
protected List<string> GetPropertyNames<T>(Expression<Func<T, object>>[] expression)
{
return ReflectionHelper.GetPropertyNamesFromExpressions(expression);
}
?
}
}
?
?
namespace SomeNamespace
{
public class Category
{
public Categories CategoryId { get; set; }
public Category Parent { get; set; }
public string Name { get; set; }
}
?
?
public enum Categories
{
Books = 1,
Movies = 2
}
}
4 回答

一只名叫tom的貓
TA貢獻1906條經(jīng)驗 獲得超3個贊
protected U GetPropertyName<T,U>(Expression<Func<T, U>> expression)
{
return (U)(ReflectionHelper.GetPropertyNameFromExpression(expression));
}

慕妹3146593
TA貢獻1820條經(jīng)驗 獲得超9個贊
我想知道是這個方法:
protected List<string> GetPropertyNames<T>(Expression<Func<T, object>>[] expression)
{
return ReflectionHelper.GetPropertyNamesFromExpressions(expression);
}
該怎么調(diào)用呢,Expression<Func<T, object>>[] expression 這個參數(shù)該怎么寫?

寶慕林4294392
TA貢獻2021條經(jīng)驗 獲得超8個贊
var propertyNames = GetPropertyNames<Category>(new Expression<Func<Category, object>>[] { x => x.Parent.Parent.Parent.Name });
蛋疼嗎?如果你可以修改方法2的話,建議加個params參數(shù),其他不變:
protected List<string> GetPropertyNames<T>(params Expression<Func<T, object>>[] expression)
這樣你就可以像方法1那樣去調(diào)用方法2了,多個Expression之間用逗號隔開,而且這樣的話,你的方法1甚至可以刪掉不用了。
- 4 回答
- 0 關(guān)注
- 388 瀏覽
添加回答
舉報
0/150
提交
取消