C#中有沒有類似Python's getattr()的東西?我想通過閱讀一個列表來創建一個窗口,其中包含要放在窗口上的控件的名稱。在C#中有沒有像Python的getattr()?
13
A
回答
9
public static class ReflectionExt
{
public static object GetAttr(this object obj, string name)
{
Type type = obj.GetType();
BindingFlags flags = BindingFlags.Instance |
BindingFlags.Public |
BindingFlags.GetProperty;
return type.InvokeMember(name, flags, Type.DefaultBinder, obj, null);
}
}
哪位能等中使用:
object value = ReflectionExt.GetAttr(obj, "PropertyName");
或(作爲一個擴展法):
object value = obj.GetAttr("PropertyName");
3
爲此使用反射。
Type.GetProperty()
和Type.GetProperties()
每個返回PropertyInfo
實例,它們可用於讀取對象的屬性值。
var result = typeof(DateTime).GetProperty("Year").GetValue(dt, null)
Type.GetMethod()
和Type.GetMethods()
每個返回MethodInfo
情況下,其可用於在對象上執行的方法。
var result = typeof(DateTime).GetMethod("ToLongDateString").Invoke(dt, null);
如果你不一定知道的類型(這將是一點點奇怪,如果你新的屬性名),比你可以做這樣的事情爲好。
var result = dt.GetType().GetProperty("Year").Invoke(dt, null);
1
是的,你可以做到這一點...
typeof(YourObjectType).GetProperty("PropertyName").GetValue(instanceObjectToGetPropFrom, null);
0
有可以使用object.GetType創建的System.Reflection.PropertyInfo類()。GetProperties中()。這可以用來使用字符串探測對象的屬性。 (類似的方法存在對象方法,字段等)
我不認爲這會幫助你實現你的目標。你應該直接創建和操作對象。例如,控件具有可以設置的Name屬性。
相關問題
- 1. 有沒有像C++的Python的StringIO/CStringIO?
- 2. getattr()沒有'類對象'
- 3. C有沒有像IDLE(python)的東西?
- 4. 有沒有像c + + const在c#中?
- 5. Getattr在Python中的封裝
- 6. 在c中有沒有像c()中的clock()函數?
- 7. 有沒有setTimeout(像)在objective-c
- 8. 有沒有像Python那樣的readability.js?
- 9. Python有沒有像Ruby的霧?
- 10. 有沒有像Python的dkpro實驗室?
- 11. 有沒有像python中的所有類似dict的方法?
- 12. 在Python中切片清單:有沒有像-0的東西?
- 13. 有沒有像在像.NET
- 14. 有沒有在Python
- 15. 有沒有C#等同於Python的unhexlify?
- 16. 在c#中有沒有像tadvgrid的delphi的網格?
- 17. C有沒有像PHP ob_start的東西?
- 18. 有沒有像樣的Websocket C#實現?
- 19. 有沒有像getdelim是C++的函數?
- 20. 在c#中有沒有像java的Character.digit(char ch,int radix)?
- 21. python combined setattr和getattr
- 22. Python單元測試有沒有像'autotest'?
- 23. Objective-C中有沒有像SHA1CryptoServiceProvider(即C#)的東西?
- 24. 在Python中使用getattr調用方法
- 25. python,在getattr中使用兩個變量?
- 26. 沒有在Python
- 27. Python動態調用; getattr的?
- 28. Python的GETATTR調用函數
- 29. 有沒有像python中的PAM一樣的模塊?
- 30. 有沒有像Python中設置的數組的一些方法?