Итак, для чтения данных из потокаConsole. Inпроще всего воспользоваться методами классаConsole.Но для этой цели можно обратиться и к методам базового классаTextReader.В качестве примера ниже приведен переделанный вариант предыдущего примера программы, в котором используется методRea.dLine , определенный в классеTextReader.
// Прочитать введенную с клавиатуры строку // непосредственно из потока Console.In.
using System;
class ReadChars2 { static void Main { string str;
Console.WriteLine("Введите несколько символов.");
str = Console.In.ReadLine; // вызвать метод ReadLine класса TextReader Console.WriteLine("Вы ввели: " + str);
}
}
Обратите внимание на то, что методReadLine теперь вызывается непосредственно для потокаConsole . In.Поэтому если требуется доступ к методам, определенным в классеTextReader,который является базовым для потокаConsole. In,то подобные методы вызываются так, как было показано в приведенном выше примере.
Применение метода ReadKey
В состав среды .NET Framework включен метод, определяемый в классеConsoleи позволяющий непосредственно считывать отдельно введенные с клавиатуры символы без построчной буферизации. Этот метод называетсяReadKey . При нажатии клавиши методReadKey немедленно возвращает введенный с клавиатуры символ. И в этом случае пользователю уже не нужно нажимать дополнительно клавишу
Ниже приведены две формы объявления методаReadKey .
static ConsoleKeylnfo ReadKey
static ConsoleKeylnfo ReadKey(bool
В первой форме данного метода ожидается нажатие клавиши. Когда оно происходит, метод возвращает введенный с клавиатуры символ и выводит его на экран. Во второй форме также ожидается нажатие клавиши, и затем возвращается введенный с клавиатуры символ. Но если значение параметра
МетодReadKey возвращает информацию о нажатии клавиши в объекте типаConsoleKeylnfo,который представляет собой структуру, состоящую из приведенных ниже свойств, доступных только для чтения.
char KeyChar ConsoleKey Key ConsoleModifiers Modifiers