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

Sta*_*mov 1 c# console.writeline

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

ConsoleKeyInfo keyInfor = Console.ReadKey();
if (keyInfor.Key == ConsoleKey.UpArrow)
{
   Console.WriteLine("Up arrow");
}
Run Code Online (Sandbox Code Playgroud)

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

实际结果:"aUp arrow"

xan*_*tos 6

对我来说它显示了一个空间.请注意说明Console.ReadKey():

获得用户按下的下一个字符或功能键.按下的键可选地显示在控制台窗口中.

如果要禁用它,请执行

ConsoleKeyInfo keyInfor = Console.ReadKey(true);
Run Code Online (Sandbox Code Playgroud)

这样,密钥就不会有任何输出.

请注意,如果重定向程序的输出,您将看到空格不是空格,它是一个NUL字符(\0)