C#根据对象属性获取属性的字符串

使用反射常用方法之一

public static string GetPropertyName<T>(Expression<Func<T, object>> expression)
{
    var rtn = "";
    if (expression.Body is UnaryExpression)
    {
        rtn = ((MemberExpression)((UnaryExpression)expression.Body).Operand).Member.Name;
    }
    else if (expression.Body is MemberExpression)
    {
        rtn = ((MemberExpression)expression.Body).Member.Name;
    }
    else if (expression.Body is ParameterExpression)
    {
        rtn = ((ParameterExpression)expression.Body).Type.Name;
    }
    else
        throw new Exception("无法获取属性名称");
    return rtn;
}

使用示例

GetPropertyName<TestClass>(val => val.ID)
//返回"ID"

//类示例
class TestClass {
	public string ID {get; set;}
}
上一篇:Android6.0 源码修改之 Contacts应用


下一篇:精心整理了一套SQL Server常用函数,速速收藏!