我想创建一个函数,该函数可以使用我选择的颜色在调用时更改控制台的颜色。我不想每次都写3条指令,所以这就是为什么我希望它包含在一个函数中。

到目前为止,我已经做了类似的事情:

public static void WindowColor(string Background, string Foreground)
{
    Console.BackgroundColor = ConsoleColor.Background;
    Console.ForegroundColor = ConsoleColor.Foreground;
    Console.Clear();
}

static void Main(string[] args)
{
    WindowColor("DarkCyan","White");
}


我想用ConsoleColor.BackgroundConsoleColor.Foreground代替ConsoleColor.DarkCyanConsoleColor.White,就像我在WindowColor("DarkCyan","White");中调用的那样。

但是我得到这个错误:


  “ ConsoleColor”不包含“背景”的定义。


现在我得到的事实是,Background中的ConsoleColor.Background不会被视为变量,而是指令的一部分,但问题是:如何使BackgroundForeground被视为完成变量形式的指令?

最佳答案

通常,您将使用正确类型的参数而不是字符串:

public static void WindowColor(ConsoleColor background, ConsoleColor foreground)
{
    Console.BackgroundColor = background;
    Console.ForegroundColor = foreground;
    Console.Clear();
}

static void Main(string[] args)
{
    WindowColor(ConsoleColor.DarkCyan, ConsoleColor.White);
}


如果坚持使用字符串作为参数,则必须解析它们:

public static void WindowColor(string Background, string Foreground)
{
    Console.BackgroundColor = (ConsoleColor) Enum.Parse(typeof(ConsoleColor), Background, true);
    Console.ForegroundColor = (ConsoleColor) Enum.Parse(typeof(ConsoleColor), Foreground, true);
    Console.Clear();
}

static void Main(string[] args)
{
    WindowColor("DarkCyan","White");
}

关于c# - 如何使用变量完成指令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40936400/

10-10 07:55