c#使用property [“propertyname”]调用访问权限(等于JavaScript)

时间:2014-07-25 09:32:34

标签: c#

如何使用propertyname访问C#中的类属性。就像我可以在JavaScript中使用property["propertyname"]

一样

2 个答案:

答案 0 :(得分:2)

要按名称访问属性的值,必须使用反射:

var propInfo = obj.GetType().GetProperty(propertyName);
var value = propInfo.GetValue(obj);

答案 1 :(得分:1)

如果有问题的类是您的,您可以覆盖索引运算符:

public object this[string key]
{
    get
    {
        var property = typeof(YourClass).GetProperty(key);
        return property.GetValue(this);
    }
}

这样,您就可以object.Title访问object["Title"]

当然这是一个精简版。您可能想要处理错误等等。您也可以将PropertyInfo返回的GetProperty()个对象缓存到Dictionary<string, PropertyInfo>,因为使用反射非常慢。