我有一个属性的名称,需要在类中找到它的值,获取该值的最快方法是什么?属性名称并需要它的值
1
A
回答
14
我假设您在运行时拥有该属性的名称;不同时编码...
让我们假设你的类被称为theClass描述,它有一个叫利人属性:
object GetThePropertyValue(object instance)
{
Type type = instance.GetType();
PropertyInfo propertyInfo = type.GetProperty("TheProperty");
return propertyInfo.GetValue(instance, null);
}
0
只需使用该属性的名称。如果它是一个可为空的属性(例如int?属性),请使用property.Value。
+0
反对票不公平,因为问题不够明确。 – fbinder 2009-04-28 16:42:36
0
在运行时,你可以使用反射来获得属性的值。
两个注意事项:
迷惑:一个模糊处理可能会改变 的属性,它 将打破该功能的名称。
重构:以这种 方式使用反射会使代码更难以重构 。如果您更改财产的名称 ,则可能需要 搜索使用 反射的实例,以根据名称获取属性值 。
2
我假设你的意思是你的财产的名称是一个字符串。在这种情况下,您需要使用一点反射来获取属性值。在下面的示例中,包含该属性的对象称为obj
。
var prop = obj.GetType().GetProperty("PropertyName");
var propValue = prop.GetValue(obj, null);
希望有帮助。
1
如果您对运行时间的速度感兴趣,请参阅Jon Skeet的Making reflection fly and exploring delegates博客文章。
相关问题
- 1. XSLT属性名称需要分开
- 2. C#:获取属性的名称,并检查它的价值
- 3. 需要命名的属性
- 4. Twitch TV API访问属性名称值并更新它
- 5. 按属性值获取属性名称
- 6. @RequestParam,名称与值属性
- 7. 需要一个值属性
- 8. 空值需要XML属性
- 9. 需要查找属性值
- 10. 转换对象的属性名称的属性和属性值
- 11. 需要取决于属性值的值
- 12. 重命名属性名称并更改多个对象的值
- 13. 我们可以给需要的功能名称属性
- 14. 不需要的属性名称用XML序列化
- 15. 的CSS属性选择,其中包含的属性名称:它
- 16. 名称属性
- 17. 如何生成属性名称并在rails模型中获取它们的值
- 18. 获取属性名称,需要检索只有某些列
- 19. 需要在字符串中找到属性名称
- 20. 使用JQuery解析XML,需要通过属性名称
- 21. 从它的值中获取属性名称
- 22. 动态CSS属性值取决于它的类/ ID名称
- 23. 通过它的值获取属性名称
- 24. 不需要名称空间相关性
- 25. 获取属性名称的默认值
- 26. Java获取名称属性的值
- 27. 名称空间元素的属性值
- 28. html中名称属性的有效值
- 29. 获取值来自的属性名称
- 30. 使用属性值的方法名称
你打败了我。请注意,该功能不需要具有特定类型的参数。我相信`对象实例`可以做得很好。 – Noldorin 2009-04-28 15:42:54