我在C#中使用ConsoleKeyInfo但是当我尝试在控制台中写入大于9的数字时,我遇到了Console.ReadKey的问题,例如
ConsoleKeyInfo number;
Console.Write("Write a number: ");
number = Console.ReadKey();
如果我想写10或11 ......控制台只读“1”
我不想使用Console.ReadLine,因为我不想为每个号码按“Enter”。
还有另一种方法可以使用Console.ReadKey在继续之前等待1秒钟吗?
由于
答案 0 :(得分:2)
您可以做的最好的事情是使用Console.ReadLine()
。程序无法知道你已经完成了这个号码。
<强>更新强>
如果您有固定长度的号码(即13位ISBN),您可以使用ReadKey,但是这样:
string isbn = "";
while (isbn.Length < 13)
{
isbn += Console.ReadKey().KeyChar;
}
答案 1 :(得分:1)
正如对问题的评论所说,Console.ReadKey
只能按照定义读取一个键。如果要从控制台获得更多输入,则需要使用其他功能。尝试这样的事情,例如:
Console.Write("Write a number: ");
string line = Console.ReadLine();
int num = 0;
if (line != null)
num = int.Parse(line);
这是一个开始,只需最少的错误检查。看看你能从那里得到什么。