C # je programovací jazyk vyvinutý společností Microsoft. Podporuje strukturované programování a objektově orientované programování. Delegáti a události se používají pro programování řízené událostmi v jazyce C #. Delegát je typově bezpečný ukazatel na metodu. V aplikaci s grafickým uživatelským rozhraním (GUI) existují tlačítka atd. Po kliknutí na tlačítko dojde k nějaké akci. Tyto akce se nazývají události. Například obnovením webové stránky se spustí událost načtení stránky. Tento článek popisuje rozdíl mezi delegáty a události v C #. klíčový rozdíl mezi delegátem a událostí v C # je to delegát je odkaz na metodu, zatímco událost je spojena s obsluhou události pomocí delegáta. Když dojde k události, vyšle signál delegátovi. Poté delegát provede odpovídající funkci. Proto jsou všechny události závislé na delegátech.
1. Přehled a klíčový rozdíl
2. Co jsou to delegáti v C #
3. Co jsou události v C #
4. Podobnosti mezi delegáty a událostmi v C #
5. Srovnání bok po boku - delegáti vs události v tabulce C #
6. Shrnutí
Delegáti v C # jsou podobní funkci zpětného volání v jiných programovacích jazycích, jako je JavaScript. Funkce zpětného volání jsou přiřazeny za běhu. Poskytují funkce, které lze podle potřeby zapínat a vypínat. Totéž lze implementovat pomocí delegátů v C #. Delegáti v C # odpojí volajícího a volanou funkci. Proto snižuje těžké spojení.
.NET Framework klasifikuje typy do dvou kategorií. Jsou to typy hodnot a referenční typy. Struktura je příkladem typu hodnoty. Třída je příkladem typu odkazu. Delegáti jsou také odkazovanými typy. Delegát se používá k držení odkazu na metodu. Jsou to ukazatele bezpečné pro daný typ. Delegované jsou odvozeny od třídy System.Delegate. Deklarace delegáta je podobná deklaraci metody, ale obsahuje klíčové slovo „delegát“. Syntaxe delegáta je následující. delegát . Návratový typ deklaruje návratovou hodnotu metodou. Je volán delegátem. Seznam parametrů definuje parametry požadované metodou. Předejte níže uvedený program delegátům.
Obrázek 01: C # Program s delegáty
Podle výše uvedeného programu jsou metody calSquare a calCube podobné deklarovanému delegátovi. V hlavním programu je proměnná cal přiřazena funkci calSquare. Nyní Cal ukazuje na metodu calSquare. Při předávání hodnoty se čtvercová hodnota vrátí a vytiskne se na obrazovku. Cal je opět přiřazen ke způsobu calCube. Nyní cal ukazuje na metodu calCube. Při předávání hodnoty je hodnota krychle vrácena a vytištěna na obrazovku. Stejný delegát se používá k označení různých metod. Proto zvyšuje flexibilitu programu.
V aplikaci mohou být stisky kláves, kliknutí na tlačítka a pohyby myši. Když k tomu dojde, událost vzroste. Když je tlačítko odeslání stisknuto ve formuláři odeslání, událost button_click () je vyvolána na pozadí. Událost volá provedení přidružené funkce. Když nastane událost, aplikace na ni reaguje. Program zpracování událostí má dvě sekce. Vydavatel obsahuje definici událostí a je delegován. Účastník událost přijme a poskytne obsluhy události.
Prohlášení o události je událost; Typ prohlášení o události musí být typem delegáta a delegát musí být stejně přístupný jako samotná událost. Název události by měl být platný název C #.
Obrázek 02: C # Program s událostmi
Podle výše uvedeného programu se vytvoří delegát a událost. Ve třídě Vypočítat existuje metoda přidání dvou čísel. Pokud je nalezeno liché číslo, dojde k události. Je to eventOddNumber (). V hlavní metodě obsluha události eventOddNumber volá delegáta. Nakonec delegát provede metodu.
Delegáti vs události v C # | |
Delegát je proměnná typu odkazu, která obsahuje odkaz na metodu. | Událost je členem třídy delegátů, který používá objekt nebo třída k poskytování upozornění dalším objektům, že k události došlo. |
Klíčové slovo | |
Delegát je deklarován pomocí klíčového slova „delegát“. | Událost je deklarována pomocí klíčového slova „event“. |
Závislost | |
Delegáti jsou nespolehliví. | Události jsou závislé na delegátech. |
Delegáti a události jsou dva koncepty spojené s programováním řízeným událostmi v C #. Tento článek pojednává o rozdílu mezi delegáty a událostmi v C #. Rozdíl mezi delegátem a událostí v C # spočívá v tom, že delegát je odkazem na metodu, zatímco událost je spojena s obsluhou události pomocí delegáta. Události jsou závislé na delegátech. Když nastala událost, vyšle signál delegátovi. Poté delegát provede odpovídající funkci
1.Balagurusamy, E. Programování v C #, premiér. Čtvrté vydání, McGraw Hill Education (India) Private Limited, 2016.
2. „Primární nabídka“. C Výukový program. K dispozici zde
3.sachinbpaul. Delegáti v C #, Sachin Paul, 1. října 2014. K dispozici zde