Verschil tussen afgevaardigden en gebeurtenissen in C #

Belangrijkste verschil - Delegates vs Events in C #
 

C # is een programmeertaal die is ontwikkeld door Microsoft. Het ondersteunt gestructureerde programmering en objectgeoriënteerde programmering. Afgevaardigden en evenementen worden gebruikt voor gebeurtenisgestuurde programmering in C #. Een gedelegeerde is een soort veilige verwijzing naar een methode. In een toepassing met een grafische gebruikersinterface (GUI) zijn er knoppen enz. Wanneer op een knop wordt geklikt, vindt een soort actie plaats. Die acties worden gebeurtenissen genoemd. Als u bijvoorbeeld een webpagina vernieuwt, wordt de pagina laadgebeurtenis geactiveerd. Dit artikel bespreekt het verschil tussen afgevaardigden en gebeurtenissen in C #. De belangrijk verschil tussen afgevaardigde en evenement in C # is dat een gedelegeerde is een verwijzing naar een methode, terwijl een gebeurtenis is gekoppeld aan een gebeurtenishandler met behulp van een gedelegeerde. Wanneer een gebeurtenis plaatsvindt, stuurt deze een signaal naar de afgevaardigde. Vervolgens voert de gedelegeerde de overeenkomstige functie uit. Vandaar dat alle evenementen afhankelijk zijn van afgevaardigden.

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat zijn afgevaardigden in C #
3. Wat zijn evenementen in C #
4. Overeenkomsten tussen afgevaardigden en gebeurtenissen in C #
5. Vergelijking zij aan zij - Afgevaardigden vs gebeurtenissen in C # in tabelvorm
6. Samenvatting

Wat zijn afgevaardigden in C #?

Gedelegeerden in C # lijken op callback-functies in andere programmeertalen, zoals JavaScript. Callback-functies worden tijdens runtime toegewezen. Ze bieden functionaliteit die naar behoefte kan worden in- en uitgeschakeld. Hetzelfde kan worden geïmplementeerd met behulp van afgevaardigden in C #. De deelnemers in C # ontkoppelen de beller en de opgeroepen functie. Daarom vermindert het de zware koppeling.

.NET Framework classificeert types in twee categorieën. Het zijn waardetypes en referentietypen. De structuur is een voorbeeld van het waardetype. De klasse is een voorbeeld van een referentietype. Gedelegeerden worden ook naar typen verwezen. Een afgevaardigde wordt gebruikt om een ​​verwijzing naar een methode vast te houden. Het zijn typeveilige aanwijzingen. Gedelegeerd zijn afgeleid van de klasse System.Delegate. Gedelegeerdverklaring is vergelijkbaar met een methodeverklaring maar bevat het sleutelwoord 'delegeren'. De syntaxis van de afgevaardigde is als volgt. afgevaardigde. Het retourneertype geeft de retourwaarde door de methode aan. Het wordt gebeld door de afgevaardigde. De parameterlijst definieert de parameters die door de methode worden vereist. Raadpleeg het onderstaande programma met gedelegeerden.

Figuur 01: C # Programma met deelnemers

Volgens het bovenstaande programma zijn de methoden calSquare en calCube vergelijkbaar met de gedeclareerde gedelegeerde. In het hoofdprogramma is de variabele cal toegewezen aan de calSquare-functie. Nu verwijst cal naar de calSquare-methode. Wanneer u de waarde doorgeeft, wordt de vierkante waarde geretourneerd en afgedrukt naar het scherm. Nogmaals, cal is toegewezen aan de calCube-methode. Nu verwijst cal naar de calCube-methode. Bij het doorgeven van de waarde wordt de kubuswaarde geretourneerd en afgedrukt naar het scherm. Dezelfde deelnemer wordt gebruikt om verschillende methoden te verwijzen. Daarom verhoogt het de programmaflexibiliteit.

Wat zijn evenementen in C #?

In een toepassing kan er sprake zijn van toetsaanslagen, knopklikken en muisbewegingen. Wanneer deze zich voordoen, zal een evenement hebben plaatsgevonden. Wanneer de verzendknop wordt ingedrukt in een inzendformulier, wordt de gebeurtenis button_click () op de achtergrond weergegeven. De gebeurtenis roept een uitgevoerde functie op. Wanneer een gebeurtenis plaatsvindt, reageert het programma daarop. Er zijn twee secties in een event-afhandelingsprogramma. De uitgever bevat de definitie van gebeurtenissen en is gedelegeerd. De abonnee accepteert het evenement en levert de gebeurtenishandler.

De verklaring van het evenement is evenement; Het type gebeurtenisverklaring moet van het type gedelegeerd zijn en de gemachtigde moet even toegankelijk zijn als de gebeurtenis zelf. De gebeurtenisnaam moet een geldige C # -naam zijn.

Figuur 02: C # Programma met evenementen

Volgens het bovenstaande programma worden de deelnemer en het evenement gemaakt. In de klasse Calculate is er een methode om twee getallen toe te voegen. Als een oneven getal wordt gevonden, zal de gebeurtenis plaatsvinden. Het is het eventOddNumber (). In de hoofdmethode roept de gebeurtenishandler eventOddNumber de gedelegeerde aan. Ten slotte voert de gedelegeerde de methode uit.

Wat is de gelijkenis tussen afgevaardigden en gebeurtenissen in C #?

  • Zowel deelnemers als gebeurtenissen in C # zijn gerelateerd aan gebeurtenisgestuurd

Wat is het verschil tussen afgevaardigden en gebeurtenissen in C #?

Delegates vs Events in C #

Een gedelegeerde is een verwijzingstype-variabele die de verwijzing naar een methode bevat. Een gebeurtenis is een klasselid van een gedelegeerd type dat door het object of de klasse wordt gebruikt om andere objecten te laten weten dat er een gebeurtenis is opgetreden.
 keyword
Een afgevaardigde wordt gedeclareerd met het sleutelwoord 'delegeren'. Een evenement wordt gedeclareerd met behulp van het sleutelwoord "event".
Afhankelijkheid
Afgevaardigden zijn onbetrouwbaar. Gebeurtenissen zijn afhankelijk van afgevaardigden.

Samenvatting - Afgevaardigden vs evenementen in C #

Afgevaardigden en evenementen zijn twee concepten die zijn gekoppeld aan gebeurtenisgestuurd programmeren in C #. In dit artikel wordt het verschil besproken tussen afgevaardigden en gebeurtenissen in C #. Het verschil tussen afgevaardigde en gebeurtenis in C # is dat een afgevaardigde een verwijzing naar een methode is terwijl een gebeurtenis is gekoppeld aan een gebeurtenishandler met behulp van een afgevaardigde. Gebeurtenissen zijn afhankelijk van afgevaardigden. Wanneer een gebeurtenis plaatsvond, stuurt deze een signaal naar de afgevaardigde. Vervolgens voert de gedelegeerde de overeenkomstige functie uit

Referentie:

1.Balagurusamy, E. Programming in C #, A premier. Vierde druk, McGraw Hill Education (India) Private Limited, 2016.
2. "Primair menu." C Zelfstudie. Beschikbaar Hier 
3.sachinbpaul. Afgevaardigden in C #, Sachin Paul, 1 oktober 2014. Beschikbaar Hier