允许用户选择颜色并存储以供以后使用

时间:2012-12-26 14:55:27

标签: c# console

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

我的想法是让一个菜单通过一个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;
        }

我希望我在这里做得很清楚,我会感激任何帮助!

感谢。

3 个答案:

答案 0 :(得分:3)

不是直接将其分配给Console.ForegroundColor,而是使用变量而稍后再使用它。

答案 1 :(得分:0)

你可以使用像这样的变量

ConsoleColore color;

然后像这样保存你的颜色

color = ConsoleColor.Red;

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

答案 2 :(得分: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");

    }
}