编程语言
首页 > 编程语言> > C#根据对象属性获取属性的字符串

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;}
}

标签:Body,Name,C#,rtn,else,字符串,expression,ID,属性
来源: https://blog.csdn.net/qq_21361809/article/details/114656719