我可以使用某种方式将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?还是我做错了什么?
请尝试在不使用枚举的情况下进行解释。我知道,这些颜色名称是枚举,但我只是还不了解枚举转换
答案 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;
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/enumeration-types
答案 1 :(得分:1)
我使用Vs 2017:我写过
Console.ForegroundColor = (ConsoleColor)10;
Console.ForegroundColor = (ConsoleColor)12;
工作了!