为了账号安全,请及时绑定邮箱和手机立即绑定

.net中一个方法传参的问题,不知道这个参数该怎么传,求解

.net中一个方法传参的问题,不知道这个参数该怎么传,求解

冉冉说 2018-12-06 13:29:40
方法一的调用如下: var propertyName = GetPropertyName<Category>(x => x.Parent.Parent.Parent.Name); 那方法二该怎么调用呢 ?就是参数(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条经验 获得超3个赞

protected U GetPropertyName<T,U>(Expression<Func<T, U>> expression)

{

return (U)(ReflectionHelper.GetPropertyNameFromExpression(expression));

}

查看完整回答
反对 回复 2019-01-21
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

我想知道是这个方法:

protected List<string> GetPropertyNames<T>(Expression<Func<T, object>>[] expression)

{

return ReflectionHelper.GetPropertyNamesFromExpressions(expression);

}

该怎么调用呢,Expression<Func<T, object>>[] expression 这个参数该怎么写?

查看完整回答
反对 回复 2019-01-21
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

var propertyNames = GetPropertyNames<Category>(new Expression<Func<Category, object>>[] { x => x.Parent.Parent.Parent.Name });

蛋疼吗?如果你可以修改方法2的话,建议加个params参数,其他不变:

protected List<string> GetPropertyNames<T>(params Expression<Func<T, object>>[] expression)

这样你就可以像方法1那样去调用方法2了,多个Expression之间用逗号隔开,而且这样的话,你的方法1甚至可以删掉不用了。

查看完整回答
反对 回复 2019-01-21
  • 4 回答
  • 0 关注
  • 362 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信