为什么System.Drawing.Color不是枚举

时间:2016-10-08 18:35:12

标签: c# struct colors enums

为什么System.Drawing.ColorstructSystem.ConsoleColorenum

2 个答案:

答案 0 :(得分:7)

因为控制台仅支持一小组颜色,而System.Drawing模拟所有可能的24位颜色(带有alpha的32位颜色)。这超过40亿种可能的颜色,这将是一个很大的枚举!

以下是控制台颜色:

enter image description here

有16个前景,加上16个背景颜色。

请注意,在System.Drawing some colours are given names,但它们不是枚举 - 它们是静态字段,例如Color.RedColor.Aquamarine

System.Windows.Media.Color(在WPF中使用)也是如此。

答案 1 :(得分:1)

因为控制台有16种众所周知的颜色,但通常可以使用16777216种颜色(每种颜色加256个alpha级别)。您想要命名所有40亿个并编写代码然后将这些枚举转换回实际的RGBA值吗?