КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция 11. События – реакция программы на действия пользователя или другой программы или внешней среды
Пространство имен Лекция 10. События (event) События – реакция программы на действия пользователя или другой программы или внешней среды. События являются методами, т.е. у событий могут быть аргументы и возвращаемые значения. Метод, реагирующий на события, называется обработчиком события. class MyButtonClass: Form { private Button mrButton; public MyButtonClass() { mrButton = new Button(); mrButton.Click += new System.EventHandler(MyButtonClickEventHandler); this.Controls.Add(mrButton) } static void Main() { Application.Run(new MyButtonClass()); }
void MyButtonClickEventHandler(object sender, EventArgs e) { MrButton.Text = "Push"; } }
Обработчик нажатия кнопки называется MyButtonClickEventHandler – метод должен запускаться каждый раз, когда происходит нажатие на кнопку. Сейчас необходимо связать событие Click (нажатие на кнопку) с методом обработчика событий. Для создания собственных событий используется специальный класс – delegate. Имена многих базовых классов и имена классов из используемых библиотек весьма обширны. Когда используется многоуровневое наследование приходится описывать всю цепочку имен для использования какого-либо класса. Для этого придумана организация файлов с помощью пространства имен. Пространство имен содержит классы одной тематики. Пространства имен могут обобщаться в еще более крупные пространства имен. Множественное наследование и коллизия имен При множественном наследовании рассматриваются две основные проблемы: 1. Коллизия имен 2. Наследование от общего предка Проблема коллизии возникает если два или более интерфейса имеют методы с одинаковыми именами или сигнатурами. Если имена совпадают, но сигнатуры различаются, то используется перегрузка. В случае если совпадают имена и сигнатуры этих методов, то выходом может быть: 1. Склеивание – используется в случае если класс, наследуемый от двух или более интерфейсов, считает, что разные интерфейсы задают один и тот же метод, для которого должна быть обеспечена единая реализация наследником. Наследник строит единственную реализацию метода, соответствующую всем наследуемым интерфейсам. 2. Переименование – несмотря на то, что сигнатуры методов в интерфейсах одинаковы, эти методы должны быть реализованы по-разному. В этой ситуации необходимо переименовать конфликтующие методы: a. Переименование методов в самих интерфейсах – неправильный путь, так как способ реализации наследника и условия реализации наследника не должны требовать изменения родителей, изменяться должен только наследник. b. Переименование метода интерфейса в самом классе наследника – для этого реализуются методы различных интерфейсов как закрытые, а затем открываются с переименованием. Пример:
Дата добавления: 2014-01-20; Просмотров: 484; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |