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