【问题标题】:System.ConsoleColor Bit Size [duplicate]System.ConsoleColor 位大小 [重复]
【发布时间】:2014-07-11 02:45:08
【问题描述】:

根据 msdn,ConsoleColor 有 16 种颜色可供选择。

这是否意味着每种颜色都用 4 位表示?

为什么他们将它限制为只有 16 种颜色?

橙色等简单的颜色甚至不可用。

【问题讨论】:

  • 它是standard CGA color palette。橙色从来都不是一种选择。不过,我不知道是什么让一种颜色比另一种颜色“更简单”。
  • 控制台从 DOS 启动时代就已经存在,因此很可能它仍然是 4 位,因为这是创建控制台核心基础的时候
  • ConsoleColor 的枚举类型隐式类型为 System.Int32,这意味着枚举中保存的每个值都消耗 32 位信息。这些与它们的颜色值没有直接关系。从历史上看,DOS(System.Console 模拟)仅支持 16 色 (CGA),因此 ConsoleColor 中的有限调色板在历史上尊重这一点。
  • 我认为橙色比“洋红色”或“深绿色”等“更简单”。也许更简单不是一个好词,用“更常见”替换更简单

标签: c#


【解决方案1】:

回答你的问题:

这是否意味着每种颜色都用 4 位表示?

至少有两个人似乎刚刚忽略了您的询问,该类型是枚举,并且枚举默认使用 Int32 作为其基础类型,因此每个值都使用 32 位表示。

【讨论】:

  • 这如何回答这个问题?为什么这意味着枚举中没有橙色?你是说不可能再增加一个成员?
  • @CodyGray,如果你看一下,你会看到 OP 中有两个问号(?),即有两个问题。这两个问题中的第一个是“这是否意味着每种颜色都使用 4 位表示”,这就是我已经回答的问题。我没有费心回答第二个问题,因为你已经有了,尽管你没有做你应该做的事情并发布答案,而是做错了事并发表了评论。好好看看自己。
  • 嗯,我猜。我对这个问题的解释有些不同。我以为他问的是控制台窗口引擎盖下颜色的实现,而不是枚举的工作原理。此外,如果他们确实回答了问题(我的不是完整的答案)并且问题不是重复的(这个问题是),你才应该发布答案。
猜你喜欢
  • 2013-01-04
  • 2011-10-13
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 2012-08-12
  • 2012-11-12
相关资源
最近更新 更多