Color クラスの Color プロパティを繰り返し処理しようとしています。
残念ながら、コレクションには含まれていないため、一連の静的プロパティを持つ単なるクラスです。
クラスのプロパティを静的またはオブジェクトベースで反復処理できるかどうかは誰にもわかりませんか?
Color クラスの Color プロパティを繰り返し処理しようとしています。
残念ながら、コレクションには含まれていないため、一連の静的プロパティを持つ単なるクラスです。
クラスのプロパティを静的またはオブジェクトベースで反復処理できるかどうかは誰にもわかりませんか?
はい、リフレクションを使用して可能です。特定の色は、 の静的プロパティとして定義されます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
}
このコードにも興味があるかもしれません
http://blog.guymahieu.com/2006/07/11/deep-reflection-of-properties-propertyreflector/
名前でプロパティを設定/取得する簡単な方法を提供します。GetBestMatchingPropertyを調べると、プロパティの反復が見つかります。これは、 クラスのプロパティを反復する前に投稿されたのと同じ方法で行われます。