на начало
На главную страницу
Форум   

Статья :: Делегаты


Делегаты

Интерфейсы облегчают написание профамм в том смысле, что ее составляющие могут быть вызваны другими приложениями или системой. Такой стиль профаммирования известен давно как использование функций обратного вызова (callback function). В этом разделе мы рассмотрим использование делегатов (delegate) в управляемом C++. Делегаты можно рассматривать в качестве объектно-ориентированных функций обратного вызова, обеспечивающих типовую безопасность. Делегаты — основа более сложного протокола вызова функций обратного вызова, называемого событиями, которые мы рассмотрим в следующем разделе главы.
Функции обратного вызова — это функции, которые ваша программа определяет и некоторым образом "регистрирует", после чего они могут быть вызваны другими приложениями. В С и C++ такие функции реализуются с использованием указателей на функции.
В управляемом C++ указатель на метод можно инкапсулировать в объекте-делегате. Делегат может указывать как на статический метод, так и на экземпляр метода. Если делегат указывает на метод экземпляра класса, он хранит и сам экземпляр класса, и точку входа в метод. Таким образом, метод экземпляра класса можно вызвать, используя сам экземпляр класса. Если делегат указывает на статический метод, в нем хранится только точка входа в этот метод.
Если делегат-объект передается какой-либо части программы, она может вызвать метод, на который указывает делегат. Нередко части программы, использующие делегат, компилируются отдельно от описания самого делегата, так что при их создании даже неизвестно, какие методы они будут использовать в действительности.
Делегат в действительности является управляемым классом, потомком класса System: : Delegate (Система: Делегат). Новый экземпляр делегата создается, как и для любого другого класса, с помощью оператора new (создать). Делегаты являются объектно-ориентированными и безопасными с точки зрения типов; они позволяют полностью использовать все средства безопасности, предусмотренные в среде выполнения управляемого кода.


Делегаты

страницы в данном разделе 
Глава 5. Управляемый C++ в .NET Framework Управляемый C++ в .NET Framework
Объект системы: System::Object Общедоступные методы экземпляров класса Object (Объект)
Защищенные методы экземпляров класса object (Объект) Родовые интерфейсы и обычное поведение
Использование методов класса object (Объект) в классе Customer (Клиент) Коллекции
Пример класса ArrayList (Список массивов) Интерфейсы
Основные сведения об интерфейсах Программирование с использованием интерфейсов
Динамическое использование интерфейсов Программа Бюро путешествий Acme (Acme Travel Agency)
Явное определение интерфейсов Родовые интерфейсы в .NET
Интерфейсы коллекций Копирование объектов и интерфейс icioneable
Сравнение объектов Что такое каркасы приложений
Делегаты Объявление делегата
Определение метода Создание экземпляра делегата
Вызов делегата Объединение экземпляров делегатов
Полный пример Моделирование фондовой биржи
События События в управляемом C++ и .NET
Описание сервера Описание клиента
Комната для дискуссий: пример чат-программы Резюме


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста