Сообщения с тегом ‘Class’
Пример “Списки с событиями”
Написано admin в 20 Июнь 2008 – 21:44 -Пример “Списки с событиями”
В этом примере строится класс ListWithChangedEvent, являющийся потомком встроенного класса ArrayList, который позволяет работать со списками. В класс добавляется событие Changed, сигнализирующее обо всех изменениях элементов списка. Строятся два класса – Receiver1 и Receiver2, получающие сообщения. В примере рассматривается взаимодействие нескольких объектов: два объекта посылают сообщения, три – принимают.
Начнем с объявления делегата: Read more »
Tags: base, ChangedEventArgs, Class, Clear, Console, event, index, int, ListWithChangedEvent, OnChanged, Override, permit, return, sender
Находится в Учебник | No Comments »
Класс sender. Как объявляются события?
Написано admin в 20 Июнь 2008 – 21:42 -Класс sender. Как объявляются события?
При проектировании класса с событиями, возможно, самое трудное – содержательная сторона дела. Какими событиями должен обладать класс, в каких методах и в какой момент зажигать то или иное событие?
Содержательную сторону будем пояснять на содержательных примерах. А сейчас рассмотрим технический вопрос: как объявляются события средствами языка С#? Прежде всего, уточним, что такое событие с программистской точки зрения. Начнем не с самого события, а с его обработчика. Обработчик события – это обычная процедура с аргументами. Понятно, что сообщение, посылаемое при зажигании события, является аналогом вызова процедуры. Поскольку сигнатура посылаемого сообщения должна соответствовать сигнатуре принимаемого сообщения, то объявление события синтаксически должно задавать сигнатуру процедуры. Read more »
Tags: Class, delegate, event, FireEventHandler, namespace, OnFire, sender, time, TownWithEvents, void
Находится в Учебник | No Comments »
Функции высших порядков (II)
Написано admin в 20 Июнь 2008 – 21:40 -Функции высших порядков (II)
Заметьте, методы закрыты и, следовательно, недоступны извне. Их четыре, но могло бы быть и больше, при возрастании сложности объекта растет число таких методов. Все методы имеют одну и ту же сигнатуру и удовлетворяют контракту, заданному делегатом, который будет описан чуть позже. Для каждого метода необходимо построить экземпляр делегата, который будет задавать ссылку на метод. Поскольку не все экземпляры нужны одновременно, то хотелось бы строить их динамически, в тот момент, когда они понадобятся. Это можно сделать, причем непосредственно в классе Person. Закрытые методы будем рассматривать как закрытые свойства и для каждого из них введем статическую процедуру-свойство, возвращающую в качестве результата экземпляр делегата со ссылкой на метод. Проще написать, чем объяснить на словах: Read more »
Tags: Class, Combination, Combine, delegate, foreach, ICloneable, invocation, ISerializable, method, MethodInfo, reflection, Target, type
Находится в Учебник | No Comments »
