当按空格键时,C#ConsoleKeyInfo不会停止while循环

时间:2019-03-15 09:46:43

标签: c# while-loop enums console

所以我想做的是当我按下一个键(在本例中为空格键)时使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);
    }

0 个答案:

没有答案