我有一個屬性的名稱,需要在類中找到它的值,獲取該值的最快方法是什麼?屬性名稱並需要它的值
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