Читаем C# 4.0 полное руководство - 2011 полностью

// Использовать лямбда-выражение для отображения факта нажатия клавиши, kevt.KeyPress += (sender, е) =>

Console.WriteLine(" Получено сообщение о нажатии клавиши: " + e.ch);

// Использовать лямбда-выражение для подсчета нажатых клавиш.

kevt.KeyPress += (sender, е) =>

count++; // count — это внешняя переменная

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

"По завершении введите точку.");

do {

key = Console.ReadKey; kevt.OnKeyPress(key.KeyChar);

} while(key.KeyChar != '.');

Console.WriteLine("Было нажато " + count + " клавиш.");

}

}

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

Было нажато 5 клавиш.

В самом начале этой программы объявляется классKeyEventArgs,производный от классаEventArgsи служащий для передачи сообщения о нажатии клавиши обработчику событий. Затем объявляется обобщенный делегатEventHandler,определяющий обработчик событий, связанных с нажатием клавиш. Эти события инкапсулируются в классеKeyEvent,где определяется событиеKeyPress.

В методеMain сначала создается объектkevtклассаKeyEvent.Затем в цепочку событийkevt. KeyPressдобавляется обработчик, предоставляемый лямбда-выражением. В этом обработчике отображается факт каждого нажатия клавиши, как показано ниже.

kevt.KeyPress += (sender, е) =>

Console.WriteLine(" Получено сообщение о нажатии клавиши: " + e.ch);

Далее в цепочку событийkevt .KeyPressдобавляется еще один обработчик, предоставляемый лямбда-выражением. В этом обработчике подсчитывается количество нажатых клавиш, как показано ниже.

kevt.KeyPress += (sender, е) =>

count++; // count — это внешняя переменная

Обратите внимание на то, чтоcountявляется локальной переменной, объявленной в методеMain и инициализированной нулевым значением.

Далее начинает выполняться цикл, в котором методkevt. OnKeyPress вызывается при нажатии клавиши. Об этом событии уведомляются все зарегистрированные обработчики событий. По окончании цикла отображается количество нажатых клавиш. Несмотря на всю свою простоту, данный пример наглядно демонстрирует саму суть обработки событий средствами С#. Аналогичный подход может быть использован и для обработки других событий. Безусловно, в некоторых случаях анонимные обработчики событий могут оказаться непригодными, и тогда придется внедрить именованные методы.

ГЛАВА 16 Пространства имен, препроцессор и сборки

Вэтой главе речь пойдет о трех средствах С#, позволяющих улучшить организованность и доступность программы. Этими средствами являются пространства имен, препроцессор и сборки.

Пространства имен

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных