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

标签 c# console.writeline

<分区>

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

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

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

实际结果:“向上箭头”

最佳答案

对我来说它显示了一个空格。请注意 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就不会有任何输出

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

关于c# - 为什么 Console.ReadKey() 将 'a' 符号连接到下一个输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30342074/

相关文章:

c# - 列表的排序包含具有字母/数字的字符串

c# - 从 DataTable 构建嵌套列表

c# - 在 NHibernate 上使用 Linq 的 IN 运算符

c# - 检查模型与两个不同物体之间是否同时发生碰撞

c# - 为什么 Console.WriteLine() 函数会遗漏字符串中的某些字符?

c# - 命名参数 Console.WriteLine c#

c# - 如何处理触发事件中重叠的 Console.Writeline()?

c# - 使用 XmlWriter 创建 xml 文件

f# - 为什么 F# printfn 没有根据 Console.WriteLine 实现?

c# - 使用字符串的 Console.writeline