【发布时间】:2018-04-06 22:44:30
【问题描述】:
我正在编写一个小应用程序,它将等待按键,然后根据按下的键执行操作。例如,如果没有按下任何键,它将继续等待,如果按下键 1,它将执行动作 1,或者如果按下键 2,它将执行动作 2。到目前为止,我发现了一些有用的帖子,@987654321 @是一个例子。由此,到目前为止,我有以下代码。
do
{
while (!Console.KeyAvailable)
{
if (Console.ReadKey(true).Key == ConsoleKey.NumPad1)
{
Console.WriteLine(ConsoleKey.NumPad1.ToString());
}
if (Console.ReadKey(true).Key == ConsoleKey.NumPad2)
{
Console.WriteLine(ConsoleKey.NumPad1.ToString());
}
}
} while (Console.ReadKey(true).Key != ConsoleKey.Escape);
这有几个问题,您可能已经猜到了。
1)
使用ReadKey 检测按下了哪个键会导致暂时暂停,这意味着必须按下该键。我真的需要找到一种方法来避免这种情况。可能使用KeyAvailable,但我不确定如何使用它来检测按下了哪个键 - 有什么想法吗?
2)
出于某种原因,Escape 键不会从应用程序中逸出。如果我删除 if 语句,它会这样做,但是按上述方式运行代码不会让我使用指定的键退出应用程序 - 有什么想法吗?
【问题讨论】:
标签: c# .net console-application listener