L'evento in informatica è un elemento caratterizzante della programmazione ad eventi.
La programmazione ad eventi è uno stile fondamentale dell'informatica. Se si utilizziamo un tipo di programma tradizionale l'esecuzione delle istruzione segue percorsi fissi, che si diversificano soltanto in punti ben determinati predefiniti dal programmatore.
Nei programmi scritti dove si utilizza la tecnica ad eventi il flusso del programma è largamente determinato dal verificarsi di eventi esterni. Noi lavoriamo attraverso Windows Form Application che costituisce la forma più semplice di applicazione virtuale. Il programma parte con l'interfaccia di tipo grafico. Differente dai linguaggi procedurali di cui abbiamo il prompt dei comandi , il programma si sviluppa dall'inizio alla fine in un unico flusso. Eventualmente con delle condizioni logiche come l'if si può diramare il codice in certe direzioni. Ma comunque il programma si presenta come un unico blocco di codici. Nelle applicazioni virtuali che noi consideriamo , quindi nella Windows Form Application si parla di programmazione ad eventi dove non esiste un' unica procedura che viene eseguita dall'inizio alla fine.
E' l'utente stesso a sollevare gli eventi, tramite l'interfaccia virtuale.C'è un intera collezione di flussi di codici attivabili attraverso gli eventi esterni. Quindi quando apriamo Windows Form Application proprio perché siamo in ambiente totalmente visuale, non lavoriamo più all'interno di una finestra con tanto di prompt attraverso un approccio procedurale, ma con una vera e propria grafica Windows.Ciascuno di questi oggetti che abbiamo sull'interfaccia, vengono chiamati controlli. E per ogni controllo sono associati una serie di eventi.
Ricapitolando → sono associati a tutti questi controlli, tutta una serie di eventi che possono essere gestiti dal programmatore, tramite delle procedure individuali per ciascun evento chiamate gestore degli eventi.
Differenze nella gestione degli eventi
che cosa significa questo codice?
In VB:
essenzialmente viene definita una sub, cioè una funzione vuota, cioè una funzione particolare che non restituisce alcun valore.Questa funzione ha un certo nome, in questo caso Button1_Click, e c'è questa clausola Handles Button1_Click che è fondamentale in quanto associa questa sub all'evento Button1_Click. Cioè la sub sta gestendo l'evento del Button1_Click. La parola chiave cioè l'istanza della classe corrente è Me. Si ricorda che VB è insensitive, scrivere con la minuscola o maiuscola non fa generare errore.
Per quanto riguarda C#:
Non abbiamo la clausola Handles come in VB. Ma comunque l'associazione c'è ma è nascosta. Questo deriva da ragioni storiche, proprio perché il VB è nato per un linguaggio di tipo visuale, invece C# è c'è stato portato. Questa associazione tra l'evento Click di button1 e il gestore dell'evento non viene realizzato tramite la clausola Handles, ma tramite un altra istruzione che è messa in un altro file, che viene inizialmente nascosto ma che possiamo andare a prendere in qualunque momento.
Questo file separato dove è contenuta l'associazione tra l'evento click e il gestore dell'evento click. Cioè questa riga di codice che si trova nel file From1.Designer.cs, ci sta dicendo:
considera l'evento click e aggiungigli questo nuovo gestore di evento con il nome (this.button1_Click). Quindi questo From1.Designer.cs, è un file di servizio per il designer che serve a definire in maniera automatica i vari controlli e all'interno di questi file mette anche i gestori degli eventi che ha aggiunto di default. Qui in C# la parola chiave cioè l'istanza della classe corrente è this. Per andare a capo ora si utilizza il ; mentre il VB si usa CRLF.
ANALOGIE
Sia in VB che in C# non è il nome del gestore degli eventi che conta, ma è proprio il meccanismo associativo tra l'evento ed il gestore dell'evento, che appunto nel caso del C# è realizzato attraverso questo tipo di sintassi e viene messo in un form inizialmente nascosto chiamato designer. In VB c'è sempre una associazione tra eventi e il gestore, ma che è esplicita, utilizzando la clausola Handles. Il Form1.designer disponibile anche in VB, quindi si può fare la stessa cosa che si fa in C# cioè:
associare programmaticamente gestori ed eventi.
Riassumendo:
Esiste un meccanismo di associazione tra eventi e gestori di eventi che è leggermente diverso nei due linguaggi di programmazione. In VB è più semplice in quanto si utilizza una semplice clausola, mentre in C# l'associazione viene fatta tramite una riga di codice presente nel file di servizio per il designer.
Nessun commento:
Posta un commento