1

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

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

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

我不想使用 Console.ReadLine 因为我不想为每个数字按“Enter”。

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

谢谢

4

2 回答 2

2

你能做的最好的就是使用Console.ReadLine(). 程序不可能知道你已经完成了这个数字。

更新

如果你有一个固定长度的数字(即一个 13 位的 ISBN),你可以使用 ReadKey,但是像这样:

string isbn = "";
while (isbn.Length < 13)
{
    isbn += Console.ReadKey().KeyChar;
}
于 2011-04-11T13:49:53.157 回答
2

正如对问题的评论所说,根据定义Console.ReadKey只读取一个。如果您想从控制台获得更多输入,您将需要使用不同的功能。尝试这样的事情,例如:

Console.Write("Write a number: ");
string line = Console.ReadLine();
int num = 0;
if (line != null)
    num = int.Parse(line);

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

于 2011-04-11T13:51:04.767 回答