我正在尝试迭代Color类的Color属性。
不幸的是它不在集合中,所以它只是一个带有一堆静态属性的类。
有没有人知道它是否可以迭代一个类'属性是静态的还是基于对象的?
答案 0 :(得分:29)
是的,可以使用反射。特定颜色定义为Color struct
的静态属性。
PropertyInfo[] colors = typeof(Color).GetProperties(BindingFlags.Static|BindingFlags.Public);
foreach(PropertyInfo pi in colors) {
Color c = (Color)pi.GetValue(null, null);
// do something here with the color
}
答案 1 :(得分:2)
您可能也对此代码感兴趣
http://blog.guymahieu.com/2006/07/11/deep-reflection-of-properties-propertyreflector/
它提供了一种按名称设置/获取属性的简便方法。如果您查看GetBestMatchingProperty,您将找到对属性的迭代,这与之前发布的方式相同 Iterating over class properties