1

我试图了解Console.ReadKey()vs发生了什么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();任何可显示的键按下时也被写入到控制台(我希望)。

4

0 回答 0