СвойствоKeyCharсодержит эквивалентcharвведенного с клавиатуры символа, свойствоKey— значение из перечисленияConsoleKeyвсех клавиш на клавиатуре, а свойствоModifiers— описание одной из модифицирующих клавиш (, или ), которые были нажаты, если это действительно имело место, при формировании ввода с клавиатуры. Эти модифицирующие клавиши представлены в перечисленииConsoleModifiersследующими значениями:Control, ShiftиAlt.В свойствеModifiersможет присутствовать несколько значений нажатых модифицирующих клавиш.

Главное преимущество методаReadKey() заключается в том, что он предоставляет средства для организации ввода с клавиатуры в диалоговом режиме, поскольку этот ввод не буферизуется построчно. Для того чтобы продемонстрировать данный метод в действии, ниже приведен соответствующий пример программы.

// Считать символы, введенные с консоли, используя метод ReadKey().

using System;

class ReadKeys {

static void Main() {

ConsoleKeylnfo keypress;

Console.WriteLine("Введите несколько символов, " +

"а по окончании - .");

do {

keypress = Console.ReadKey(); // считать данные о нажатых клавишах Console.WriteLine(" Вы нажали клавишу: " + keypress.KeyChar);

// Проверить нажатие модифицирующих клавиш.

if((ConsoleModifiers.Alt & keypress.Modifiers) != 0)

Console.WriteLine("Нажата клавиша ."); if((ConsoleModifiers.Control & keypress.Modifiers) != 0)

Console.WriteLine("Нажата клавиша ."); if((ConsoleModifiers.Shift & keypress.Modifiers) != 0)

Console.WriteLine("Нажата клавиша .");

} while(keypress.KeyChar != ' Q');

}

}

Вот, например, к какому результату может привести выполнение этой программы.

Введите несколько символов, а по окончании - .

а Вы нажали клавишу: а

b Вы нажали клавишу: b

d Вы нажали клавишу: d

А Вы нажали клавишу: А

Нажата клавиша .

В Вы нажали клавишу: В

Нажата клавиша .

С Вы нажали клавишу: С

Нажата клавиша .

• Вы нажали клавишу: •

Нажата клавиша .

Q Вы нажали клавишу: Q

Нажата клавиша .

/

Как следует из приведенного выше результата, всякий раз, когда нажимается клавиша, методReadKey() немедленно возвращает введенный с клавиатуры символ.*Этим он отличается от упоминавшегося ранее методаRead (), в котором ввод выполняется с построчной буферизацией. Поэтому если требуется добиться в программе реакции на ввод с клавиатуры, то рекомендуется выбрать методReadKey ().

Запись данных в поток вывода на консоль

Перейти на страницу:

Похожие книги