Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ДЕЛЕГАТЫ И РАБОТА С СОБЫТИЯМИ





В простейшем случае можно сказать, что делегат (delegate) – это указатель на функцию. По крайней мере, именно указатели на функции выполняли в «старых» языках программирования те задачи, которые в.NET возложены на делегаты.

Формально, делегат определяет прототип функции. То есть набор, типы и последовательности параметров и тип возвращаемого результата. Однако делегаты могут указывать на несколько функций одновременно, что является существенным отличие делегатов от указателей в «старых» языках.

Очень часто делегатов используют там, где необходимо получить возможность изменять поведение алгоритма. Например, при сортировке, обработке полей базы данных и т.п. Общее описание делегата выглядит как:

[<модификатор>] delegate <тип-результата>
<имя_делегата>(<список_параметров>)
;

Например,

public delegate int CompareCats(Cat cat1, Cat cat2);

 

При этом вызов функций, инкапсулированных внутрь делегата, ничем не отличается от вызова функций через указатели.

События обычно относят к модели программирования с управлением по событиям (event-driven model). Такой подход чаще всего встречается при написании графического пользовательского интерфейса, когда какому-либо классу необходимо сообщить о чем-то для него важном.

Класс как бы публикует (описывает) те события, которые он может генерировать, а другие «подписываются» на них. Функция, которая при этом должна вызываться описывается при помощи делегата. При этом используется правило, согласно которому делегат события должен иметь два параметра: первый – объект инициатор события и второй – данные, передаваемые вместе с событием (являются наследником класса EventArgs). Например,

public delegate void ArraySorted(object sender, ArraySortedEventArgs args);

public event ArraySorted OnArraySorted;

За пределами класса описания, событие может быть использовано только слева от операторов += (подписка) и -= (отказ от подписки). Другое использование событий вне класса не допускается.







Дата добавления: 2015-08-12; просмотров: 335. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

Правила наложения мягкой бинтовой повязки 1. Во время наложения повязки больному (раненому) следует придать удобное положение: он должен удобно сидеть или лежать...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия