C#使用ConsoleColor作为int

时间:2019-01-07 10:57:10

标签: c# console registry

我可以使用某种方式将ConsoleColors用作它们的Int吗? 喜欢

Console.ForeGroundColor = 10; //ConsoleColor.Green has the Value of 10

但我只能使用

Console.ForeGroundColor = ConsoleColor.Green; //when hovering over "Green" Visual Studio even shows me that Green is 10

我设法在注册表(HKEY_CURRENT_USER / Console)中找到这些Color-Ints,其中Ints具有颜色的十六进制代码,但是没有名称(我能够将Green的值更改为Orange并恢复为默认值,没关系)。那么,为什么C#或Visual Studio不让我使用Ints?还是我做错了什么?

请尝试在不使用枚举的情况下进行解释。我知道,这些颜色名称是枚举,但我只是还不了解枚举转换

2 个答案:

答案 0 :(得分:5)

<p>✓ check mark (U+2713)</p> <p>✔ heavy check mark (U+2714)</p>ConsoleColor,不是int,并且您不能将类型enum隐式转换为它。

您可以使用类型转换:

int

int x = 10;
Console.ForegroundColor = (ConsoleColor)x;

Cast int to enum in C#

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/enumeration-types

答案 1 :(得分:1)

我使用Vs 2017:我写过

Console.ForegroundColor = (ConsoleColor)10;
Console.ForegroundColor = (ConsoleColor)12;

工作了!