C # е език за програмиране, разработен от Microsoft. Той поддържа структурирано програмиране и обектно-ориентирано програмиране. Делегати и събития се използват за програмиране, управлявано от събития в C #. Делегатът е надежден указател на метод. В приложение с графичен потребителски интерфейс (GUI) има бутони и др. При натискане на бутон възниква някакъв вид действие. Тези действия се наричат събития. Например обновяването на уеб страница ще задейства събитието за зареждане на страницата. Тази статия обсъжда разликата между делегатите и събитията в C #. Най- ключова разлика между делегат и събитие в C # е това делегатът е препратка към метод, докато едно събитие е свързано с обработващ събитие с помощта на делегат. Когато се случи събитие, той изпраща сигнал на делегата. Тогава делегатът изпълнява съответната функция. Следователно, всички събития зависят от делегатите.
1. Преглед и ключова разлика
2. Какво представляват делегатите в C #
3. Какви са събитията в C #
4. Прилики между делегатите и събитията в C #
5. Паралелно сравнение - делегати срещу събития в C # в таблична форма
6. Резюме
Делегатите в C # са подобни на функциите за обратно извикване в други езици за програмиране като JavaScript. Функциите за обратно извикване се задават по време на изпълнение. Те осигуряват функционалност, която може да се включва и извежда според нуждите. Същото може да се реализира с помощта на делегати в C #. Делегатите в C # разединяват повикващия и извикваната функция. Следователно, той намалява тежката връзка.
.NET Framework класифицирани типове в две категории. Те са стойностни типове и референтни типове. Структурата е пример за тип стойност. Класът е пример за референтен тип. Делегатите също са реферирани типове. За препратка към метод се използва делегат. Те са безопасни за тип указатели. Делегираните са получени от класа System.Delegate. Декларацията за делегат е подобна на декларация за метод, но съдържа ключовата дума „делегат“. Синтаксисът на делегата е следният. делегат. Типът връщане декларира възвръщаемата стойност по метода. Обажда се от делегата. Списъкът с параметри определя параметрите, изисквани от метода. Вижте по-долу програмата с делегати.
Фигура 01: Програма C # с делегати
Според горната програма, методите calSquare и calCube са подобни на декларирания делегат. В основната програма променливата cal е присвоена на функцията calSquare. Сега cal сочи към метода calSquare. При предаване на стойността квадратната стойност се връща и тя се отпечатва на екрана. Отново cal е присвоено на метода calCube. Сега cal сочи към метода calCube. При предаване на стойността, куб стойността се връща и се отпечатва на екрана. Един и същ делегат се използва за обозначаване на различни методи. Следователно, това увеличава гъвкавостта на програмата.
В приложение може да има натискане на клавиши, натискане на бутони и движение на мишката. Когато те се случат, събитие ще се повдигне. Когато бутонът за изпращане е натиснат във формуляра за изпращане, на заден план се повдига събитието button_click (). Събитието извиква изпълнение на свързаната функция. Когато се случи събитие, отговорът на приложението към това. Има два раздела в програма за обработка на събития. Издателят съдържа дефиницията на събитията и делегиран. Абонатът приема събитието и предоставя обработващия събитието.
Декларацията за събитието е събитие; Типът на декларация за събитие трябва да бъде тип делегат, а делегатът трябва да бъде също толкова достъпен, колкото и самото събитие. Името на събитието трябва да е валидно име на C #.
Фигура 02: Програма C # със събития
Според горната програма, делегатът и събитието се създават. В класа Изчисляване има метод за добавяне на две числа. Ако бъде намерен нечетен номер, събитието ще се случи. Това е eventOddNumber (). В основния метод обработващият събитие eventOddNumber извиква делегата. Накрая, делегатът изпълнява метода.
Делегати срещу Събития в C # | |
Делегатът е променлива тип референтен, който съдържа препратката към метод. | Събитието е член на клас на делегат, използван от обекта или класа, за да предостави известие на други обекти, че е възникнало събитие. |
Ключова дума | |
Делегат се декларира с помощта на ключовата дума „делегат“. | Събитие се декларира с помощта на ключовата дума „събитие“. |
Зависимост | |
Делегатите са неотменяеми. | Събитията зависят от делегатите. |
Делегатите и събитията са две концепции, свързани с програмиране, управлявано от събития в C #. Тази статия обсъжда разликата между делегатите и събитията в C #. Разликата между делегат и събитие в C # е, че делегатът е препратка към метод, докато събитие е свързано с обработващ събитие, използващ делегат. Събитията зависят от делегатите. Когато се случи събитие, той изпраща сигнал на делегата. Тогава делегатът изпълнява съответната функция
1.Balagurusamy, E. Програмиране в C #, премиер. Четвърто издание, McGraw Hill Education (Индия) Private Limited, 2016.
2. "Основно меню." C урок. Налични тук
3.sachinbpaul. Делегати в C #, Sachin Paul, 1 октомври 2014. Достъпно тук