允许用户选择一种颜色并将其存储以供以后使用

本文关键字:存储 一种 用户 许用户 选择 颜色 | 更新日期: 2023-09-27 17:49:45

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

我的想法是有一个菜单,通过一个开关语句工作(见下文),这部分很容易,但我怎么能继续,并调用他们选择的颜色在这个开关稍后的程序中?

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;
        }

我希望我在这里说得足够清楚,我很感激任何帮助!

谢谢。

允许用户选择一种颜色并将其存储以供以后使用

不要直接赋值给Console.ForegroundColor,而是使用一个变量,以后再使用。

你可以这样使用变量

ConsoleColore color;

然后像这样保存你的颜色

color = ConsoleColor.Red;

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

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

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");
    }
}