Студопедия — Делегаты. Общие сведения
Студопедия Главная Случайная страница Обратная связь

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

Делегаты. Общие сведения






Делегат – это специальный объект, который «указывает» на метод или несколько методов. Эти методы могут быть вызваны позднее посредством делегата.

Делегат должен иметь точно такой же синтаксис, что и метод при объявлении (то есть возвращать или не возвращать то же значение, что и метод и принимать или не принимать те же самые параметры).

Работа с делегатом очень схожа с работой с классом.

· Для того, чтобы делегат указал на статический метод (при чем метод объявлен в классе, в котором вызывается делегат), то мы просто создаем объект делегата и в скобках указываем название метода:

· Для того, чтобы делегат указал на нестатический метод (при чем метод объявлен вне класса, в котором вызывается делегат), то мы сначала создаем объект этого другого класса, потом объект делегата и в скобках обращаемся к методу через объект класса (имя объекта, точка, название метода):

Пример для чего используются делегаты (к примеру для быстрого и удобного переключения между методами).

Расход бензина на определенное расстояние, алгоритм создания:

1. Создаем класс Car, специальный конструктор (параметры: модель машини, уровень бензина в баке, расход на 100 км), метод (параметр: дистанция), который подсичтает, сколько осталось в баке.

2. Создаем второй класс, создаем 2 метода (параметры: уровень топлива в баке, расход на 1 км, дистанция).

3. Объявляем делегат в классе Car, в конструкторе инициализируем его, в методе Drive используем уже не другой метод, а делегат. И соответственно меняется реализация в основном методе Main.

1. Для начала создадим класс, в котором есть специальный конструктор (задает название машины, уровень бензина, расход на 100 км) и метод (пользователь задает дистанцию, метод подсчитывает, сможет ли проехать машина).

2. Теперь добавим класс в нашу программу, в котором будут 2 метода, которые подсчитывает остаток топлива в баке в нормальную и ветреннюю погоду (результат не поменяется):

3. Объявляем делегат в классе Car, в конструкторе инициализируем его, в методе Drive используем уже не другой метод, а делегат. И соответственно меняется реализация в основном методе Main.

Можно не в конструкторе, а в методе использовать делегат:

Итог: Делегаты могут использоваться в ситуации, когда есть 1 метод одного класса, 2 метода (с одинаковыми параметрами и возвращаемым значением) другого класса. Мы можем создать в первом классе делегат, который указывает на эти 2 метода. Тогда добавив этот делегат в качестве параметра в метод первого класса, мы сможем, при вызове этого метода в основной функции Main, указать в скобках, какой из двух методов использовать.

Делегат может указывать на несколько методов одновременно. То есть при вызове делегата будут выполняться сразу все методы, на которые он указывает. Такая особенность реализуется следующим образом:

Важно: Если мы возвращаем какое-либо значение в каждом из методов, то в итоге вернется значение последнего метода, использованого в Main.







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



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

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

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

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

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

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

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