Разница между делегатами и событиями в C #

Ключевая разница - делегаты против событий в C #
 

C # - это язык программирования, разработанный Microsoft. Он поддерживает структурное программирование и объектно-ориентированное программирование. Делегаты и события используются для программирования на основе событий в C #. Делегат - это безопасный от типа указатель на метод. В приложении с графическим интерфейсом пользователя (GUI) есть кнопки и т. Д. При нажатии кнопки происходит какое-то действие. Эти действия называются событиями. Например, обновление веб-страницы вызовет событие загрузки страницы. В этой статье обсуждается различие между делегатами и событиями в C #. ключевое отличие между делегатом и событием в C # является то, что делегат - это ссылка на метод, в то время как событие связано с обработчиком события, использующим делегат.. Когда происходит событие, он отправляет сигнал делегату. Затем делегат выполняет соответствующую функцию. Следовательно, все события зависят от делегатов.

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что такое делегаты в C #
3. Что такое события в C #
4. Сходства между делегатами и событиями в C #
5. Сравнение между участниками - делегаты против событий в C # в табличной форме
6. Резюме

Что такое делегаты в C #?

Делегаты в C # похожи на функции обратного вызова в других языках программирования, таких как JavaScript. Функции обратного вызова назначаются во время выполнения. Они предоставляют функциональные возможности, которые можно включать и выключать по мере необходимости. То же самое можно реализовать с помощью делегатов в C #. Делегаты в C # разделяют вызывающую и вызываемую функцию. Следовательно, это уменьшает тяжелую связь.

.NET Framework классифицирует типы по двум категориям. Это типы значений и ссылочные типы. Структура является примером типа значения. Класс является примером ссылочного типа. Делегаты также являются ссылочными типами. Делегат используется для хранения ссылки на метод. Это типобезопасные указатели. Делегированные являются производными от класса System.Delegate. Объявление делегата похоже на объявление метода, но содержит ключевое слово «делегат». Синтаксис делегата выглядит следующим образом. делегат Возвращаемый тип объявляет возвращаемое значение методом. Вызывается делегатом. Список параметров определяет параметры, необходимые для метода. Пошлите ниже программу с делегатами.

Рисунок 01: Программа на C # с делегатами

Согласно вышеуказанной программе методы calSquare и calCube аналогичны заявленному делегату. В основной программе переменная cal назначена функции calSquare. Теперь cal указывает на метод calSquare. При передаче значения возвращается квадратное значение и выводится на экран. Снова, cal назначен методу calCube. Теперь cal указывает на метод calCube. При передаче значения значение куба возвращается и выводится на экран. Один и тот же делегат используется для ссылки на разные методы. Следовательно, это увеличивает гибкость программы.

Что такое события в C #?

В приложении могут быть нажатия клавиш, нажатия кнопок и движения мыши. Когда это произойдет, событие произойдет. Когда кнопка отправки нажата в форме отправки, событие button_click () возникает в фоновом режиме. Событие вызывает выполнение связанной функции. Когда происходит событие, приложение реагирует на это. В программе обработки событий есть два раздела. Издатель содержит определения событий и делегирован. Подписчик принимает событие и предоставляет обработчик события..

Объявление события есть событие; Тип объявления события должен быть типом делегата, а делегат должен быть таким же доступным, как и само событие. Имя события должно быть действительным именем C #.

Рисунок 02: Программа на C # с событиями

В соответствии с вышеуказанной программой, делегат и мероприятие создаются. В классе Calculate есть метод для добавления двух чисел. Если будет найдено нечетное число, событие произойдет. Это событиеOddNumber (). В методе main обработчик события eventOddNumber вызывает делегат. Наконец, делегат выполняет метод.

Каково сходство между делегатами и событиями в C #?

  • И делегаты, и события в C # связаны с событиями

В чем разница между делегатами и событиями в C #?

Делегаты против событий в C #

Делегат - это переменная ссылочного типа, которая содержит ссылку на метод. Событие - это член класса делегированного типа, используемый объектом или классом для предоставления другим объектам уведомления о том, что произошло событие..
 Ключевое слово
Делегат объявляется с использованием ключевого слова «делегат».. Событие объявляется с использованием ключевого слова «событие».
зависимость
Делегаты ненадежны. События зависят от делегатов.

Резюме - Делегаты против событий в C #

Делегаты и события - это две концепции, связанные с программированием на основе событий в C #. В этой статье обсуждалась разница между делегатами и событиями в C #. Разница между делегатом и событием в C # заключается в том, что делегат является ссылкой на метод, а событие связано с обработчиком события, использующим делегат. События зависят от делегатов. Когда происходит событие, он посылает сигнал делегату. Затем делегат выполняет соответствующую функцию

Ссылка:

1.Балагурусы, Е. Программирование на C #, Премьера. Четвертое издание, McGraw Hill Education (India) Private Limited, 2016.
2. «Главное меню». С Учебник. Доступна здесь 
3.sachinbpaul. Делегаты на C #, Сачин Пол, 1 октября 2014 года. Доступно здесь