C#Console.ReadKey读取大于9的数字

时间:2011-04-11 13:42:12

标签: c# .net console console.readkey

我在C#中使用ConsoleKeyInfo但是当我尝试在控制台中写入大于9的数字时,我遇到了Console.ReadKey的问题,例如

ConsoleKeyInfo number;
Console.Write("Write a number: ");
number = Console.ReadKey();

如果我想写10或11 ......控制台只读“1”

我不想使用Console.ReadLine,因为我不想为每个号码按“Enter”。

还有另一种方法可以使用Console.ReadKey在继续之前等待1秒钟吗?

由于

2 个答案:

答案 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);

这是一个开始,只需最少的错误检查。看看你能从那里得到什么。