Newsgroup: it.comp.lang.visual-basic
Titolo: Domanda da neofita

Qual'è la differenza ta un modulo e un modulo di classe???
Grazzie
<SAX>

 Qual'è la differenza ta un modulo e un modulo di classe???
Beh, un modulo è un gruppo di procedure, mentre un modulo di classe è un
modulo dove definisci una tua classe personalizzata.
Assai impreciso ma.....qlc sa dire meglio? ;P

Qual'è la differenza ta un modulo e un modulo di classe???
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 proprietà 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 negli 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
standard sono 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.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------