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

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

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





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

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

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

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

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

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

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

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; просмотров: 472. Нарушение авторских прав; Мы поможем в написании вашей работы!




Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

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

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