1

我正在编写一个控制台应用程序,其中我想要实现的一件事是让用户选择他们想要代表他们的颜色,然后在整个程序中使用它。

我的想法是有一个通过 switch 语句工作的菜单(见下文),这部分很简单,但我怎样才能在程序的后面继续调用他们在这个 switch 中选择的颜色呢?

private static void colorSelector()
    {
        var myKey = Console.ReadKey(true);
        switch (myKey.Key)
        {
            case ConsoleKey.F1:
                Console.ForegroundColor = ConsoleColor.Green;
                break;
            case ConsoleKey.F2:
                Console.ForegroundColor = ConsoleColor.Cyan;
                break;
            case ConsoleKey.F3:
                Console.ForegroundColor = ConsoleColor.Red;
                break;
            case ConsoleKey.F4:
                Console.ForegroundColor = ConsoleColor.Magenta;
                break;
            case ConsoleKey.F5:
                Console.ForegroundColor = ConsoleColor.Blue;
                break;
            case ConsoleKey.F6:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;
        }

我希望我在这里让自己足够清楚,我会很感激任何帮助!

谢谢。

4

3 回答 3

3

不要直接将它分配给Console.ForegroundColor,而是使用一个变量,然后再使用它。

于 2012-12-26T14:56:41.257 回答
0

你可以像这样使用变量

ConsoleColore color;

然后像这样保存你的颜色

color = ConsoleColor.Red;

之后你就可以在你的程序中使用它了!

于 2012-12-26T15:45:33.220 回答
0

您可以将其分配给类级别变量,然后在整个类中检索它:

class Program
{
    private static ConsoleColor _userColor;
    static void Main(string[] args)
    {

        var myKey = Console.ReadKey(true);
        switch (myKey.Key)
        {
            case ConsoleKey.F1:
                _userColor = ConsoleColor.Green;
                break;
            case ConsoleKey.F2:
                _userColor = ConsoleColor.Cyan;
                break;
            case ConsoleKey.F3:
                _userColor = ConsoleColor.Red;
                break;
            case ConsoleKey.F4:
                _userColor = ConsoleColor.Magenta;
                break;
            case ConsoleKey.F5:
                _userColor = ConsoleColor.Blue;
                break;
            case ConsoleKey.F6:
                _userColor = ConsoleColor.Yellow;
                break;

        }

        DoSomething();

        Console.ReadLine();
    }

    private static void DoSomething()
    {
        Console.ForegroundColor = _userColor;
        Console.WriteLine("color choosen");

        Console.ForegroundColor = ConsoleColor.Black;
        Console.BackgroundColor = _userColor;
        Console.WriteLine("flipped it");

    }
}
于 2012-12-26T16:00:00.910 回答