Tại sao là System.Drawing.Color
một struct và System.ConsoleColor
an enum?Tại sao System.Drawing.Color không phải là enum
Trả lời
Vì bảng điều khiển chỉ hỗ trợ một bộ màu nhỏ, trong khi System.Drawing
mô hình tất cả các màu 24 bit có thể (32 bit với alpha). Đó là hơn 4 tỷ màu sắc có thể, đó sẽ là một enum lớn!
Dưới đây là giao diện điều khiển màu sắc:
Có 16 foreground, cộng với 16 màu nền.
Lưu ý rằng trong System.Drawing
some colours are given names, nhưng chúng không phải là enum - chúng là các trường tĩnh, chẳng hạn như Color.Red
và Color.Aquamarine
.
Điều tương tự cũng đúng với System.Windows.Media.Color
(như được sử dụng trong WPF).
Vì có 16 màu nổi tiếng cho bàn điều khiển, nhưng 16777216 màu (cộng với 256 mức alpha cho mỗi) có thể được sử dụng nói chung. Bạn có muốn đặt tên cho tất cả 4 tỷ người trong số họ và viết mã mà sau đó chuyển đổi những enums trở lại thành giá trị RGBA thực tế?
- 1. Tại sao không phải là Enumerations Iterable?
- 2. Tại sao System.Net.Http.HttpMethod một lớp học, không phải là một enum?
- 3. Tại sao System.Enum không phải là một loại giá trị?
- 4. Tại sao một Java enum không thể là cuối cùng?
- 5. tại sao Object.GetType() không phải là ảo?
- 6. tại sao không phải là đa dạng.
- 7. tại sao 1e400 không phải là int?
- 8. tại sao Object.prototype === không phải là myNewObj.prototype?
- 9. Tại sao đây không phải là POD?
- 10. Environment.GetCommandLineArgs - tại sao nó là một phương pháp? Tại sao không phải là tài sản?
- 11. Tại sao Đếm không phải là số nguyên không dấu?
- 12. Tại sao constexpr phải là tĩnh?
- 13. Django: "TypeError: [] không phải là JSON serializable" Tại sao?
- 14. Tại sao không phải là XmlDocument động trong .NET 4?
- 15. Tại sao sử dụng argparse chứ không phải là optparse?
- 16. Tại sao .then không phải là một chức năng?
- 17. Tại sao .val() không phải là một hàm?
- 18. Tại sao đây không phải là loại POD?
- 19. Tại sao (a, a) không phải là một functor?
- 20. Tại sao UtteranceProgressListener không phải là giao diện?
- 21. tại sao không phải là (123 == 0123) trong java?
- 22. Java 8, tại sao không phải là một lớp ZonedTime?
- 23. Tại sao không phải là số làm việc?
- 24. Tại sao đây không phải là hình vuông? LWJGL
- 25. Tại sao in không phải là chức năng trong python?
- 26. Tại sao phương thức TaskFactory.StartNew không phải là chung?
- 27. Tại sao javascript getTime() không phải là một hàm?
- 28. VB.Net tại sao đây không phải là lỗi?
- 29. Tại sao mã này không phải là chuỗi an toàn?
- 30. Tại sao mergesort không phải là động lập trình