Герберт Шилдт - C# 4.0 полное руководство - 2011

Тут можно читать онлайн Герберт Шилдт - C# 4.0 полное руководство - 2011 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание

C# 4.0 полное руководство - 2011 - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)

C# 4.0 полное руководство - 2011 - читать книгу онлайн бесплатно, автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// Прочитать введенную с клавиатуры строку // непосредственно из потока 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 () позволяет считывать и обрабатывать ввод с клавиатуры в реальном масштабе времени.

Ниже приведены две формы объявления метода ReadKey ().

static ConsoleKeylnfo ReadKey()

static ConsoleKeylnfo ReadKey(bool intercept)

В первой форме данного метода ожидается нажатие клавиши. Когда оно происходит, метод возвращает введенный с клавиатуры символ и выводит его на экран. Во второй форме также ожидается нажатие клавиши, и затем возвращается введенный с клавиатуры символ. Но если значение параметра intercept равно true, то введенный символ не отображается. А если значение параметра intercept равно false, то введенный символ отображается.

Метод ReadKey () возвращает информацию о нажатии клавиши в объекте типа ConsoleKeylnfo, который представляет собой структуру, состоящую из приведенных ниже свойств, доступных только для чтения.

char KeyChar ConsoleKey Key ConsoleModifiers Modifiers

Свойство 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 ().

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

Потоки Console . Out и Console .Error являются объектами типа TextWriter. Вывод на консоль проще всего осуществить с помощью методов Write () и WriteLine () , с которыми вы уже знакомы. Существуют варианты этих методов для вывода данных каждого из встроенных типов. В классе Console определяются его собственные варианты метода Write() nWriteLine(),n поэтому они могут вызываться непосредственно для класса Console, как это было уже не раз показано на страницах данной книги. Но при желании эти и другие методы могут быть вызваны и для класса TextWriter, который является базовым для потоков Console . Out и Console . Error.

Ниже приведен пример программы, в котором демонстрируется вывод в потоки Console . Out и Console . Error. По умолчанию данные в обоих случаях выводятся на консоль.

// Организовать вывод в потоки Console.Out и Console.Error.

using System;

class ErrOut {

static void Main() { int a=10, b=0; int result;

Console.Out.WriteLine("Деление на нуль приведет " +

"к исключительной ситуации.");

try {

result = а / b; // сгенерировать исключение при попытке деления на нуль } catch(DivideByZeroException exc) {

Console.Error.WriteLine(exc.Message);

}

}

}

При выполнении этой программы получается следующий результат.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0 полное руководство - 2011 отзывы


Отзывы читателей о книге C# 4.0 полное руководство - 2011, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x