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