C# 方法,该方法为我想要的任何颜色编写代码
我得到的错误是: 无法将类型“System.ConsoleColor”隐式转换为“string”C# 方法,该方法为我想要的任何颜色编写代码,c#,C#,我得到的错误是: 无法将类型“System.ConsoleColor”隐式转换为“string” 我正在尝试创建一个这样调用的方法:TextColor(Green),基本上就是这样做的:Console.ForegroundColor=ConsoleColor.Green,显然我想对所有颜色都这样做,然后调用我想要的颜色(只需节省时间,这样我就不必每次都键入:Console.ForegroundColor=ConsoleColor.[specific color]。如果参数是字符串,则可以解析值:
我正在尝试创建一个这样调用的方法:
TextColor(Green)
,基本上就是这样做的:Console.ForegroundColor=ConsoleColor.Green
,显然我想对所有颜色都这样做,然后调用我想要的颜色(只需节省时间,这样我就不必每次都键入:Console.ForegroundColor=ConsoleColor.[specific color]
。如果参数是字符串,则可以解析值:
public static void TextColor(string green, string blue, string red)
{
green = Console.ForegroundColor = ConsoleColor.Green;
blue = Console.ForegroundColor = ConsoleColor.Blue;
red = Console.ForegroundColor = ConsoleColor.Red;
}
例如:
public static void TextColor(string colorString)
{
Console.ForegroundColor = (ConsoleColor) Enum.Parse(typeof(ConsoleColor), colorString);
}
现在还不清楚您希望调用是什么样子的-您已经显示了
TextColor(绿色)
当您有三个参数时,它只提供一个参数。您还不清楚Green
是什么意思。字符串值是什么?也许您实际上只需要三个方法,SetGreenText
,SetRedText
,SetBlueText
?如果您希望用户传递一个参数n仅定义一个参数。然后使用if/else或switch语句确定它们传递的参数值。如果您的参数是string
,则可以解析该值:Enum.parse(typeof(ConsoleColor)、colorString);
。为什么需要一个方法呢?如果每次调用该方法时都要传递颜色,然后只执行赋值,那么不管怎样,只需在main中执行赋值。这不是编译。你需要强制转换。这几乎与我想要的方式相同,但我想创建一组颜色字符串,并且每个字符串都包含特定的Console.ForegroundColor=ConsoleColor[color],然后用字符串TextColor(蓝色)或我想要的任何颜色来调用它。@JackPeeterson:那么我就避免使用字符串。只需使用静态using指令,使绿色
表示ConsoleColor.Green
。
TextColor("Green"); // Sets Console.ForegroundColor to ConsoleColor.Green
TextColor("Blue"); // Sets Console.ForegroundColor to ConsoleColor.Blue