c# - 在完成特定任务之前禁用 C# 控制台中的输入

标签 c# console-application

我正在处理我的程序的一小部分,处理输入,基本上我有这个小代码:

bool Done = false;
while (!Done)
{
  ConsoleKeyInfo key = Console.ReadKey(true);
  if (key.Key == ConsoleKey.Enter)
  {
    //Action
  }
}

这样做的主要问题是,即使在操作之间,代码也会处理 ReadKey。

因此,如果您有一个菜单,您可以在其中按键,然后如果您在显示此消息时按任何按钮,它会说“您按下了:x”,那么 ReadKey 已经获得了新的 key 。

所以我想阻止任何进一步的输入,直到用户再次看到菜单。

最佳答案

不太确定这是否有意义,就我个人而言,我喜欢击键不会消失并且我可以提前输入的情况。但是你可以像这样刷新键盘缓冲区:

while (!Done)
{
    while (Console.KeyAvailable) Console.ReadKey(true);
    ConsoleKeyInfo key = Console.ReadKey(true);
    // etc..
}

关于c# - 在完成特定任务之前禁用 C# 控制台中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5147327/

相关文章:

c# - 丑陋的类接口(interface)定义

c# - 如何判断对象引用是否为空?

java - 是否可以使用 Spring 创建控制台应用程序?

c# - 自托管 .NET Core 控制台应用程序中的 Startup.cs

c# - 如何修复 "No overload for method ' ' takes 0 arguments"?

ColdFusion 'Run As Service' 与 'Run in Console'

c# - OData 抛出 URI 中指定的查询无效

c# - 在 google maps jquery 插件中定义一个区域

c# - 南希.ViewEngines.ViewNotFoundException : Unable to locate view 'Index'

rust 打印!问题 - println 宏中的奇怪行为