Я пытаюсь выполнить итерацию по свойствам "Цвет" класса "Цвет".
К сожалению, его нет в коллекции, поэтому это просто класс с кучей статических свойств.
Кто-нибудь знает, может ли его итерация над свойствами класса быть статичной или объектной?
Ответ 1
Да, возможно использование рефлексии. Конкретные цвета определяются как статические свойства 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
}
Он предоставляет простой способ установить/получить свойства по имени. Если вы посмотрите в GetBestMatchingProperty, вы найдете итерацию по свойствам, которая будет сделана так же, как и ранее
Итерирование свойств класса