c#使用属性[";propertyname";]调用访问权限(等于JavaScript)

c#使用属性[";propertyname";]调用访问权限(等于JavaScript),c#,C#,如何使用propertyname访问C#中的类属性。就像我可以在JavaScript中使用属性[“propertyname”]?通过名称访问属性的值一样,必须使用反射: var propInfo = obj.GetType().GetProperty(propertyName); var value = propInfo.GetValue(obj); 要按名称访问属性的值,必须使用反射: var propInfo = obj.GetType().GetProperty(propertyName

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

通过名称访问属性的值一样,必须使用反射:

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

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

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

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

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

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

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

如果所讨论的类是您的,则可以重写索引运算符:

public object this[string key]
{
    get
    {
        var property = typeof(YourClass).GetProperty(key);
        return property.GetValue(this);
    }
}
这将使您能够使用
object[“Title”]
访问
object.Title


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

如果所讨论的类是您的,您可以覆盖索引运算符:

public object this[string key]
{
    get
    {
        var property = typeof(YourClass).GetProperty(key);
        return property.GetValue(this);
    }
}
这将使您能够使用
object[“Title”]
访问
object.Title


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

如果所讨论的类是您的,您可以覆盖索引运算符:

public object this[string key]
{
    get
    {
        var property = typeof(YourClass).GetProperty(key);
        return property.GetValue(this);
    }
}
这将使您能够使用
object[“Title”]
访问
object.Title


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

如果所讨论的类是您的,您可以覆盖索引运算符:

public object this[string key]
{
    get
    {
        var property = typeof(YourClass).GetProperty(key);
        return property.GetValue(this);
    }
}
这将使您能够使用
object[“Title”]
访问
object.Title

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