我有一个简单的问题,但我无法弄清楚。我尝试寻找其他帖子,但找不到这个问题的直接答案。
考虑这样的代码:
Console.WriteLine("Enter key");
var key = Console.ReadKey();
if (key.Key == ConsoleKey.Escape)
{
Console.WriteLine("Escape pressed");
}
else
{
Console.WriteLine("Escape Not Pressed");
}
当我按下 Escape 时,我会得到如下输出:
scape pressed
注意第一个字母被剪掉了。
为什么会发生这种情况以及解决方案是什么?
在读取键后添加
Console.WriteLine();
。 Readkey 不执行换行,控制台上的 Escape“字符”会导致该行为。
或者,您可以先尝试
Console.Readkey(true);
,但根据我的经验,有时也会导致奇怪的行为,因为您必须按两个键才能让程序做出反应。