C # ConsoleKeyInfo не останавливает цикл while при нажатии SpaceBar - PullRequest
0 голосов
/ 15 марта 2019

Итак, я хочу сделать WriteLine паузу, когда я нажимаю клавишу (в данном случае пробел). Я посмотрел его и нашел решение, но оно не останавливается, когда я нажимаю пробел.

Что я хочу сделать:

  1. Приложение запускается , оно должно отображать: Красный, Зеленый, Оранжевый, Красный, Зеленый, Оранжевый, Красный, Зеленый, Оранжевый, Красный, Зеленый, Оранжевый, Красный, Зеленый, Апельсин, и так далее

  2. Нажата пробел , все приостанавливается и Console.WriteLine останавливается.

  3. Пробел не нажат , назад к результатам числа 1.

Код:

    public enum TrafficlightColor { Red, Green, Orange }
    private string color = TrafficlightColor.Red.ToString(); 
    private ConsoleKeyInfo input;

    public void NextState()
    {             
        do
        {
            Console.WriteLine(color);

            if (color == TrafficlightColor.Red.ToString())
            {
                color = TrafficlightColor.Green.ToString();
                //System.Threading.Thread.Sleep(5000);
            }
            else if (color == TrafficlightColor.Green.ToString())
            {
                color = TrafficlightColor.Orange.ToString();
                //System.Threading.Thread.Sleep(10000);
            }
            else if (color == TrafficlightColor.Orange.ToString())
            {
                color = TrafficlightColor.Red.ToString();
                //System.Threading.Thread.Sleep(3000);
            }        
        }
        while (input.Key != ConsoleKey.Spacebar);
    }
...