Nel linguaggio VB.Net è molto importante comprendere la differenza tra le variabili definite come Value Type o Reference Type, sia per motivi prettamente operativi sia per motivi computazionali e di utilizzo della memoria.
La differenza fondamentale infatti si trova nel fatto che le variabili di tipo Value Type salvano i loro dati direttamente nel loro apposito spazio di memoria detto STACK mentre le variabili di tipo Reference Type contengono un puntatore che riporta ai dati salvati su uno spazio esterno, in questo modo occupiamo due spazi nella memoria uno provvisorio detto HEAP, che contiene il puntatore, e uno definitivo di riferimento.
La variabile di tipo Value Type perciò è efficiente dal punto di vista del consumo della memoria ma non permette facilmente la condivisione di informazioni in operazioni fatte su classe diverse: nel momento in cui la variabile Value Type viene definita all'interno di una procedura quale ad esempio una function, una volta terminata la procedura la variabile viene rimossa dal suo STACK.
Solitamente le variabili Value Type contengono:
- Dati di tipo numerico
- Boolean, Char e Date
- particolari strutture che contengono anche dati di tipo reference
- elenchi
La variabile di tipo Reference Type lavora sfruttando il sistema delle "copie provvisorie" , al contrario della Value Type, la memoria non viene azzerata alla fine della procedura ma l'informazione viene salvata esternamente e può essere riutilizzata in più form. Nel momento in cui all'interno di una procedura viene richiamata la variabile Reference Type, il sistema salva una copia della suddetta e permette di manipolarla senza però modificare il valore salvato nella memoria di partenza. Ciò implica che da un lato sovraccarichiamo la memoria ma dall'altro velocizziamo l'operatività del programma.
Solitamente le variabili Reference Type contengono:
Solitamente le variabili Reference Type contengono:
- Stringhe
- Matrici
- Classi
Entrambe le variabile sono inizializzate dalla parola chiave New.
Nessun commento:
Posta un commento