【发布时间】:2015-11-13 07:37:35
【问题描述】:
我在控制台应用程序 C# 中有以下代码。问题是,如果我从键盘提供除箭头以外的任何输入,它会将这些字符打印到控制台上。有没有办法防止在控制台上打印除箭头以外的字符。还有一种方法可以增强以下程序。
class Program
{
static ConsoleKeyInfo keyinfo;
// public ConsoleKeyInfo keyinfo;
static void Main(string[] args)
{
do
{
keyinfo = Console.ReadKey();
say();
}
while(keyinfo.Key == ConsoleKey.DownArrow
|| keyinfo.Key == ConsoleKey.UpArrow
|| keyinfo.Key == ConsoleKey.LeftArrow
|| keyinfo.Key == ConsoleKey.RightArrow);
}
public static void say()
{
if(keyinfo.Key == ConsoleKey.DownArrow)
{
Console.WriteLine("Down");
}
else if(keyinfo.Key == ConsoleKey.UpArrow)
{
Console.WriteLine("Up");
}
else if(keyinfo.Key == ConsoleKey.RightArrow)
{
Console.WriteLine("Right");
}
else if(keyinfo.Key == ConsoleKey.LeftArrow)
{
Console.WriteLine("Left");
}
else
{
Console.ReadKey(false);
}
}
}
【问题讨论】:
-
尝试将您的
Console.ReadKey();和Console.ReadKey(false);都更改为Console.ReadKey(true);。这个我没测试过,但是msdn-docs状态:"决定是否在控制台窗口显示按下的键。true表示不显示按下的键;否则为false。",所以我'我假设它应该工作。