为什么 Console.ReadKey() 将 'a' 符号连接到下一个输出?

Why does Console.ReadKey() concatenate 'a' symbol to the next output?

我正在做一个简单的例子,根据输入键,我在控制台上写了不同的消息。问题是,每次我读取一个键,下一个 Console.WriteLine() 结果的开头都有一个 'a' 符号连接?这是一个例子:

ConsoleKeyInfo keyInfor = Console.ReadKey();
if (keyInfor.Key == ConsoleKey.UpArrow)
{
   Console.WriteLine("Up arrow");
}

单击向上箭头时的预期结果:"Up arrow"

实际结果:"aUp arrow"

对我来说它显示了 space。请注意 Console.ReadKey() 的描述是:

Obtains the next character or function key pressed by the user. The pressed key is optionally displayed in the console window.

如果你想禁用它,

ConsoleKeyInfo keyInfor = Console.ReadKey(true);

这样key就不会输出了

请注意,如果您重定向程序的输出,您会看到 space 不是 space,而是 NUL 字符([=13 =])