2009-02-21 94 views
17

我正在尝试遍历Color类的Color属性。迭代类属性

不幸的是,它不在一个集合,所以它只是一个具有一堆静态属性的类。

有谁知道是否有可能迭代类的属性是静态的还是基于对象的?

回答

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 
} 
+6

被张贴我想补充: 如果(pi.PropertyType == typeof运算(彩色)) 到面向未来的任何新特性都将添加到Color中。 – ICR 2009-02-21 13:19:35