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

时间:2015-05-20 06:40:05

标签: c# console.writeline

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

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

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

实际结果:" aUp arrow"

1 个答案:

答案 0 :(得分:6)

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

  

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

如果要禁用它,请执行

ConsoleKeyInfo keyInfor = Console.ReadKey(true);

这样就不会有任何关键的输出。

请注意,如果您重定向程序的输出,则会发现空格不是空格,而是NUL字符(\0