C# 反射获取字段类变量名

using System.Linq.Expressions;  
            public static string GetPropertyName<T>(Expression<Func<T,object>> expr)  
            {  
                var rtn = "";  
                if (expr.Body is UnaryExpression)  
                {  
                    rtn = ((MemberExpression)((UnaryExpression)expr.Body).Operand).Member.Name;  
                }  
                else if (expr.Body is MemberExpression)  
                {  
                    rtn = ((MemberExpression)expr.Body).Member.Name;  
                }  
                else if (expr.Body is ParameterExpression)  
                {  
                    rtn = ((ParameterExpression)expr.Body).Type.Name;  
                }  
                return rtn;  
        }  
      
    Response.Write(GetPropertyName< TestClass >(p=>p.ID)) ; //输出的是 "ID" 两字母  
    Response.Write(GetPropertyName< TestClass >(p=>p. Name)) ; //输出的是 "Name" 四个字母  
    Response.Write(GetPropertyName< TestClass >(p=>p)) ; //输出的是 "TestClass" 九个字母  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值