Console.ReadKey()奇怪的行为?

时间:2019-07-07 23:19:18

标签: c# readkey

我试图了解Console.ReadKey()Console.ReadKey(true)的关系。我知道包含true会阻止该键显示在控制台上,但是当同时使用Console.Clear();时会产生一些奇怪的行为,我应该说这个C#代码正在编译并在Pixel上运行C(android)平板电脑。我不知道它在Windows上的行为是否相同。


using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

namespace CSharp_Shell
{

    public static class Program 
    {
        public static void Main() 
        {
           string[] str = new String[5] {"one","two","three","four","five"};
           foreach(string s in str)
           {
               Console.WriteLine(s);
           }
           Console.ReadKey(true);
           Console.Clear();
           foreach(string s in str)
           {
               Console.WriteLine(s);
           }
        }
    }
}

执行后,该控制台将显示...

one
two
three
four
five

...之后,我可以按一个键,清除控制台,然后再次显示文本。

但是,如果我将Console.ReadKey(true);更改为Console.ReadKey();,则执行将按预期产生初始文本,并且在按下键后仅显示...

one
two

最后,以上述两种方式运行代码,但附加的更改是删除Console.Clear();行,导致所有文本均按预期显示(不清除屏幕),区别在于使用Console.ReadKey();,任何按下的可显示键也将写入控制台(我希望如此)。

0 个答案:

没有答案