Differenza tra delegati ed eventi in C #

Differenza chiave - Delegati vs Eventi in C #
 

C # è un linguaggio di programmazione sviluppato da Microsoft. Supporta programmazione strutturata e programmazione orientata agli oggetti. I delegati e gli eventi vengono utilizzati per la programmazione basata sugli eventi in C #. Un delegato è un puntatore sicuro al tipo di un metodo. In un'applicazione con un'interfaccia utente grafica (GUI), ci sono pulsanti, ecc. Quando si fa clic su un pulsante, si verifica un qualche tipo di azione. Quelle azioni sono chiamate eventi. Ad esempio, l'aggiornamento di una pagina Web attiverà l'evento di caricamento della pagina. Questo articolo discute la differenza tra i delegati e gli eventi in C #. Il differenza fondamentale tra delegato ed evento in C # è quello un delegato è un riferimento a un metodo mentre un evento è associato a un gestore di eventi che utilizza un delegato. Quando si verifica un evento, invia un segnale al delegato. Quindi il delegato esegue la funzione corrispondente. Quindi, tutti gli eventi dipendono dai delegati.

CONTENUTO

1. Panoramica e differenza chiave
2. Cosa sono i delegati in C #
3. Cosa sono gli eventi in C #
4. Somiglianze tra delegati ed eventi in C #
5. Confronto affiancato - Delegati vs Eventi in C # in forma tabulare
6. Sommario

Cosa sono i delegati in C #?

I delegati in C # sono simili alle funzioni di callback in altri linguaggi di programmazione come JavaScript. Le funzioni di callback sono assegnate in fase di esecuzione. Forniscono funzionalità che possono essere attivate e disattivate secondo necessità. Lo stesso può essere implementato usando i delegati in C #. I delegati in C # disaccoppiano il chiamante e la funzione chiamata. Pertanto, riduce l'accoppiamento pesante.

.Tipi classificati come framework NET in due categorie. Sono tipi di valore e tipi di riferimento. La struttura è un esempio di tipo di valore. La classe è un esempio di un tipo di riferimento. I delegati sono anche tipi di riferimento. Un delegato viene utilizzato per contenere un riferimento a un metodo. Sono puntatori sicuri per il tipo. Delegati sono derivati ​​dalla classe System.Delegate. La dichiarazione del delegato è simile a una dichiarazione del metodo ma contiene la parola chiave "delegato". La sintassi del delegato è la seguente. delegato. Il tipo restituito dichiara il valore restituito dal metodo. È chiamato dal delegato. L'elenco dei parametri definisce i parametri richiesti dal metodo. Fare riferimento al programma seguente con i delegati.

Figura 01: programma C # con delegati

Secondo il programma di cui sopra, i metodi calSquare e calCube sono simili al delegato dichiarato. Nel programma principale, la variabile cal è assegnata alla funzione calSquare. Ora, cal sta puntando al metodo calSquare. Quando si passa il valore, viene restituito il valore quadrato e viene stampato sullo schermo. Di nuovo, cal è assegnato al metodo calCube. Ora, cal sta puntando sul metodo calCube. Quando si passa il valore, il valore del cubo viene restituito e stampato sullo schermo. Lo stesso delegato viene utilizzato per riferire metodi diversi. Pertanto, aumenta la flessibilità del programma.

Cosa sono gli eventi in C #?

In un'applicazione ci possono essere pressioni di tasti, clic sui pulsanti e movimenti del mouse. Quando questi si verificano, un evento si alzerà. Quando il pulsante di invio viene premuto in un modulo di invio, l'evento button_click () viene generato in background. L'evento richiama un'esecuzione della funzione associata. Quando si verifica un evento, la risposta dell'applicazione a questo. Ci sono due sezioni in un programma di gestione degli eventi. Il publisher contiene la definizione di eventi e delegati. Il Sottoscrittore accetta l'evento e fornisce il gestore dell'evento.

La dichiarazione dell'evento è un evento; Il tipo di dichiarazione di un evento deve essere di tipo delegato e il delegato deve essere accessibile come l'evento stesso. Il nome dell'evento dovrebbe essere un nome C # valido.

Figura 02: programma C # con eventi

Secondo il programma di cui sopra, vengono creati il ​​delegato e l'evento. Nella classe Calculate, c'è un metodo per aggiungere due numeri. Se viene trovato un numero dispari, si verificherà l'evento. È l'eventOddNumber (). Nel metodo principale, il gestore eventi eventOddNumber chiama il delegato. Infine, il delegato esegue il metodo.

Qual è la somiglianza tra delegati ed eventi in C #?

  • Sia i delegati che gli eventi in C # sono correlati all'evento

Qual è la differenza tra delegati ed eventi in C #?

Delegati vs Eventi in C #

Un delegato è una variabile del tipo di riferimento che contiene il riferimento a un metodo. Un evento è un membro della classe di tipo delegato utilizzato dall'oggetto o dalla classe per fornire una notifica ad altri oggetti che si è verificato un evento.
 Parola chiave
Un delegato viene dichiarato utilizzando la parola chiave "delegato". Un evento è dichiarato utilizzando la parola chiave "evento".
Dipendenza
I delegati sono inderogabili. Gli eventi dipendono dai delegati.

Sommario - Delegati vs Eventi in C #

Delegati ed eventi sono due concetti associati alla programmazione basata sugli eventi in C #. Questo articolo ha discusso la differenza tra i delegati e gli eventi in C #. La differenza tra delegato ed evento in C # è che un delegato è un riferimento a un metodo mentre un evento è associato a un gestore eventi che utilizza un delegato. Gli eventi dipendono dai delegati. Quando si verifica un evento, invia un segnale al delegato. Quindi il delegato esegue la funzione corrispondente

Riferimento:

1.Balagurusamy, E. Programming in C #, A premier. Quarto ed., McGraw Hill Education (India) Private Limited, 2016.
2. "Menu principale." C Tutorial. Disponibile qui 
3.sachinbpaul. Delegati in C #, Sachin Paul, 1 ottobre 2014. Disponibile qui