Newsgroup: it.comp.lang.visual-basic
Titolo: Modulo o mudulo di classe?

Salve,
qualcuno sa spiegarmi la differenza che c'è tra un modulo e un modulo
di classe? Grazie...
Saluti, ciao ciao.

 wrote in message
news:39c6700e...@news.libero.it...


qualcuno sa spiegarmi la differenza che c'è tra un modulo e un modulo di classe? Grazie...
 
I moduli standard sono dei moduli di codice: contengono procedure e funzioni, nonché dichiarazioni
di funzioni API. Se non vengono dichiarati con la parola chiave Private, tali procedure e funzioni
hanno valore globale, ovvero hanna validità in tutta l'applicazione (quindi possono venir richiamati
da ogni modulo standard, di form o di classe del progetto). Inoltre è possibile aggiungere una
procedura Main come procedura di avvio dell'applicazione, anziché utilizzare un form. Per finire, se
non vengono utilizzati riferimenti ad altri componenti dell'applicazione (es form) un modulo è
riutilizzabile anche in altre applicazioni.
I moduli di calsse, invece, sono il fondamento della programmazione ad oggetti: ogni oggetto ha
infatti la struttura della classe a cui appartiene. Ogni oggetto può venir implementato con
proprietà, metodi ed eventi. Le proprietà sono implementabili con le routine Property Get/Let/Set
(per maggiori info e differenze, senza dilungarmi troppo, ti rimando alla guida in linea) le quali
restituiscono/assegnano il valore ad una vaiabile locale: infatti nessuna variabile a livello di
modulo di classe viene dichiarata come pubblica, poiché così facndo si va contro al principio
dell'incapsulamento (infatti proprietà e metodi non sono altro che l'interfaccia dell'oggetto,
tramite i quali si accede ai dati dell'oggetto stesso. Ma se non anziché delegare ad una porprietà o
ad un metodo la modifica di un valore, accedessimo direttamente (tramite una variabile pubblica) a
tale dato, rischieremo di render la risorsa utilizzabile (v. più avanti)). I metodi non sono altro
che procedure o funzioni pubbliche, mentre gli eventi, implementabili neli oggetti dichiarati con
WithEvents, vengono dichiarati con "Public Event NomeEvento(...) e richiamati con RaiseEvent (anché
qui, per maggiori info, ti rimando alla guida in linea). La differenza fra moduli standard e moduli
di classe sta appunto nelle basi della programmazione ad oggetti: i dati contenuti in un modulo
standardsono unici, ovvero nel ciclo di vita di un'applicazione, un modulo viene istanziato una
volta soltanto ed il valore di una sua proprietà è unico. Le proprietà definite nei moduli di
classe, invece, possono assumere valori diveri per ogni istanza dell'oggetto associato a tale
classe: ad esempio posso avere due istanza dell'oggetto Pippo (Pippo1 e Pippo2) ma Pippo1.Cognome
può benissimo esser diverso da Pippo2.Cognome, poiché sono due oggetti diversi (meglio dire "due
istanze diverse dello stesso oggetto").
Spero di esserti stato d'aiuto,
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

 
Questo è vero ma non è tutto, nel senso che non serve solo a questo: si 
possono anche definire (attraverso un modulo di classe) oggetti 
istanzibili nell'applicazione stessa che questa contiene il modulo di 
classe stesso.