C # Console.ReadKey читать числа больше 9 - PullRequest
1 голос
/ 11 апреля 2011

Я работаю с ConsoleKeyInfo в C #, но у меня проблемы с Console.ReadKey, когда я пытаюсь записать числа больше 9 в консоли, например

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

Если я хочу написать 10 или 11 ... консоль читает только «1»

Я не хочу использовать Console.ReadLine, потому что я не хочу нажимать «Enter» для каждого номера.

Есть ли другой способ использовать Console.ReadKey, чтобы подождать, может быть, 1 секунду, прежде чем продолжить?

Спасибо

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

Лучшее, что вы можете сделать, это использовать Console.ReadLine(). Программа никак не узнает, что вы набрали номер.

UPDATE

Если у вас есть номер фиксированной длины (т. Е. 13-значный ISBN), вы можете использовать ReadKey, но вот так:

string isbn = "";
while (isbn.Length < 13)
{
    isbn += Console.ReadKey().KeyChar;
}
1 голос
/ 11 апреля 2011

Как говорится в комментариях к вопросу, Console.ReadKey читает только один ключ по определению. Вам нужно будет использовать другую функцию, если вы хотите получить больше информации с консоли. Попробуйте что-то вроде этого, например:

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

Это начало, с минимальной проверкой ошибок. Посмотрите, что вы можете получить оттуда.

...