c#方法中如何获取参数的原始属性名?

idoiknow 2013-08-02 10:12:37

public class Person
{
public string Name{get;set;}
}

void TestFunc(string name)
{
//由于我具体的方法是泛型, 所以在这我已经能获取到Person类型,但
//我还想得到传入name值的那个属性名
}

...{

Person p1=new Person();
p1.Name="Jack";
TestFunc(p1.Name);//近在咫尺,却无法在方法内得到这个"Name" ?

}


貌似这是一个理想化的问题
...全文
198 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
idoiknow 2013-08-02
  • 打赏
  • 举报
回复
引用 1 楼 wddw1986 的回复:
我还是那句话,用正常人的思维去想问题,因为你所使用的编程语言是为正常人而设计的。 如果总是想以一种与众不同的方式去思考,那么你最应该想的是自己发明一个编程语言,而不是纠结于使用别的语言实现那些奇怪的想法。
你说得很对, 之前的想法确实奇葩了点
idoiknow 2013-08-02
  • 打赏
  • 举报
回复
哈哈~,已经解决 我傻了, 其实我的方法本来用泛型绑定Model的, 可以得到很多东西

 public static MvcHtmlString EnumToCombo<TModel, TProperty>
(this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
        {
            //表达式绑定的Model的属性成员
            var member = ((MemberExpression)expression.Body).Member; 

            var itemName = member.Name;  //属性名
            var propertyInfo = (PropertyInfo)member;   
            var memberType = propertyInfo.PropertyType; //属性类型
            var itemBalue =ModelMetadata.FromLambdaExpression(
                            expression,htmlHelper.ViewData).Model; //属性值
}

 <td>计算方式:</td>
 <td>@Html.EnumToCombo(m=>m.CalculationMode)</td>
cheng2005 2013-08-02
  • 打赏
  • 举报
回复
我还是那句话,用正常人的思维去想问题,因为你所使用的编程语言是为正常人而设计的。 如果总是想以一种与众不同的方式去思考,那么你最应该想的是自己发明一个编程语言,而不是纠结于使用别的语言实现那些奇怪的想法。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧