C # je programovací jazyk vyvinutý spoločnosťou Microsoft. Podporuje štruktúrované programovanie a objektovo orientované programovanie. Delegáti a udalosti sa používajú na programovanie udalostí v jazyku C #. Delegát je typom bezpečný ukazovateľ na metódu. V aplikácii s grafickým používateľským rozhraním (GUI) existujú tlačidlá atď. Po kliknutí na tlačidlo dôjde k nejakej akcii. Tieto akcie sa nazývajú udalosti. Napríklad obnovenie webovej stránky spustí udalosť načítania stránky. Tento článok popisuje rozdiel medzi delegátmi a udalosťami v C #. kľúčový rozdiel medzi delegátom a udalosťou v C # je to delegát je odkaz na metódu, zatiaľ čo udalosť je spojená s obsluhou udalosti pomocou delegáta. Ak dôjde k udalosti, vyšle delegátovi signál. Potom delegát vykoná zodpovedajúcu funkciu. Z tohto dôvodu sú všetky udalosti závislé od delegátov.
1. Prehľad a kľúčový rozdiel
2. Čo sú to delegáti v C #
3. Čo sú udalosti v C #
4. Podobnosti medzi delegátmi a udalosťami v C #
5. Porovnanie bok po boku - delegáti vs. udalosti v tabuľke C #
6. Zhrnutie
Delegáti v jazyku C # sú podobní funkciám spätného volania v iných programovacích jazykoch, ako je napríklad JavaScript. Funkcie spätného volania sú priradené za behu. Poskytujú funkcie, ktoré je možné podľa potreby zapínať a vypínať. To isté sa dá implementovať pomocou delegátov v jazyku C #. Delegáti v C # odpojia volajúceho a volanú funkciu. Preto sa znižuje ťažká väzba.
.NET Framework rozdelil typy do dvoch kategórií. Sú to typy hodnôt a referenčné typy. Štruktúra je príkladom typu hodnoty. Trieda je príkladom referenčného typu. Delegáti sú tiež referenčnými typmi. Delegát sa používa na držanie odkazu na metódu. Sú to ukazovatele bezpečného typu. Delegované sú odvodené od triedy System.Delegate. Deklarácia delegáta je podobná deklarácii metódy, ale obsahuje kľúčové slovo „delegát“. Syntax delegáta je nasledovná. delegovať. Návratový typ deklaruje návratovú hodnotu metódou. Volá ho delegát. Zoznam parametrov definuje parametre požadované metódou. Odovzdajte program uvedený nižšie delegátom.
Obrázok 01: Program C # s delegátmi
Podľa vyššie uvedeného programu sú metódy calSquare a calCube podobné deklarovanému delegátovi. V hlavnom programe je premenná cal priradená funkcii calSquare. Teraz kal ukazuje na metódu calSquare. Pri odovzdávaní hodnoty sa vráti druhá hodnota a vytlačí sa na obrazovku. Cal je opäť priradený metóde calCube. Teraz kal ukazuje na metódu calCube. Pri odovzdávaní hodnoty sa hodnota kocky vráti a vytlačí na obrazovku. Ten istý delegát sa používa na označenie rôznych metód. Preto sa zvyšuje flexibilita programu.
V aplikácii môžu byť stlačenia klávesov, kliknutia na tlačidlá a pohyby myši. Ak k nim dôjde, udalosť sa objaví. Keď sa tlačidlo odoslania stlačí vo formulári na odoslanie, udalosť button_click () sa zdvihne na pozadí. Udalosť volá vykonanie pridruženej funkcie. Ak dôjde k udalosti, aplikácia na to reaguje. Program spracovania udalostí má dve sekcie. Vydavateľ obsahuje definíciu udalostí a je delegovaný. Účastník akceptuje udalosť a poskytuje obsluhovateľovi udalosti.
Vyhlásenie udalosti je udalosť; Typ vyhlásenia o udalosti musí byť typom delegáta a delegát musí byť rovnako prístupný ako samotná udalosť. Názov udalosti by mal byť platný názov C #.
Obrázok 02: Program C # s udalosťami
Podľa vyššie uvedeného programu sa vytvorí delegát a udalosť. V triede Vypočítať existuje spôsob, ako pridať dve čísla. Ak sa nájde nepárne číslo, dôjde k udalosti. Je to eventOddNumber (). V hlavnej metóde obsluha udalosti eventOddNumber volá delegáta. Nakoniec delegát vykoná metódu.
Delegáti vs udalosti v C # | |
Delegát je premenná typu odkazu, ktorá obsahuje odkaz na metódu. | Udalosť je členom triedy delegátov, ktorý používa objekt alebo trieda na upozornenie ostatných objektov na výskyt udalosti. |
kľúčové | |
Delegát je vyhlásený pomocou kľúčového slova „delegát“. | Udalosť sa deklaruje pomocou kľúčového slova „event“. |
závislosť | |
Delegáti sú nespoľahliví. | Udalosti závisia od delegátov. |
Delegáti a udalosti sú dva koncepty spojené s programovaním riadeným udalosťami v jazyku C #. V tomto článku sa diskutuje o rozdieloch medzi delegátmi a udalosťami v kategórii C #. Rozdiel medzi delegátom a udalosťou v C # je v tom, že delegát je odkazom na metódu, zatiaľ čo udalosť je spojená s obsluhou udalosti pomocou delegáta. Udalosti závisia od delegátov. Ak dôjde k udalosti, vyšle delegátovi signál. Potom delegát vykoná zodpovedajúcu funkciu
1.Balagurusamy, E. Programovanie v C #, premiér. Štvrté vydanie, McGraw Hill Education (India) Private Limited, 2016.
2. „Primárne menu“. C Výukový program. K dispozícii tu
3.sachinbpaul. Delegáti v C #, Sachin Paul, 1. októbra 2014. K dispozícii tu