我想基于颜色名称(如“ Red”或“ Blue”)将控制台的BackgroundColor更改为字符串。
这是一个粗糙的例子:
public void ChangeBackGroundColor(string ColorName)
{
Console.BackgroundColor = ConsoleColor.ColorName;
Console.Clear();
}
它应该更改控制台的BackgroundColor。
答案 0 :(得分:1)
您需要将字符串ColorName
转换为适当的枚举值:
Console.BackgroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), ColorName, true);
Console.Clear();
答案 1 :(得分:0)
您需要将字符串解析为ConsoleColor
枚举类型。如果Enum.Parse
中未包含ColorName
,则ConsoleColor
将引发异常。因此,您可以使用TryParse
来防止异常并单独处理。
public void ChangeBackGroundColor(string ColorName)
{
ConsoleColor consoleColor;
if (Enum.TryParse(ColorName, out consoleColor))
{
// We now have an enum type.
Console.BackgroundColor = consoleColor;
Console.Clear();
}
//do whatever you want if it's invalid ColorName
Console.WriteLine("invalid color");
}
答案 2 :(得分:0)
简单的变体,使用Enum.TryParse()跳过不存在的颜色:
private static void ChangeBackGroundColor(string ColorName)
{
if (Enum.TryParse(ColorName, out ConsoleColor Color))
Console.BackgroundColor = Color;
Console.Clear();
}