lunedì 23 marzo 2020

Esaminare le differenze e analogie sia sintattiche che strutturali nella gestione degli eventi in C# e VB.NET

Che cosa sono gli eventi? 

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

applicazione13

- Svolgere l' Esercizio 4  indicato nel video 49 (processo aleatorio + ordini e calcolo PNL) - Completare l' Esercizio 4  aggiungen...