2009-02-21 33 views
17

Tôi đang cố gắng lặp qua các thuộc tính Màu của lớp Màu.Lặp lại các thuộc tính của lớp

Thật không may, nó không nằm trong bộ sưu tập nên chỉ là một lớp với một loạt các thuộc tính tĩnh.

Có ai biết nếu nó có thể lặp qua các thuộc tính của một lớp có thể là tĩnh hoặc dựa trên đối tượng không?

Trả lời

29

Có, có thể sử dụng sự phản chiếu. Các màu cụ thể được định nghĩa là thuộc tính tĩnh của 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

tôi sẽ thêm: if (typeof pi.PropertyType == (Màu)) để tương lai chống lại bất kỳ thuộc tính mới nào được thêm vào Màu. – ICR

Các vấn đề liên quan