Classificazione dei dati (VB.NET): Value Type e Reference Type

In VB.NET esiste una classificazione dei dati che al momento dell’esecuzione ne permette una diversa implementazione tipo per tipo. Andiamo a vedere la differenza fra i dati Value Type e i dati Reference Type.

Premettiamo anzitutto che, quando definiamo una variabile di un certo tipo, stiamo allocando e preparando uno spazio della memoria a contenere un dato del tipo specificato.


Un tipo di dato è classificato come Value Type se lo spazio di memoria posto a contenerlo contiene proprio il valore assegnato al dato. Un esempio sono in dati numerici. Se dichiariamo una variabile intera e le assegnamo il valore 5, la cella di memoria assegnata alla variabile, conterrà il valore 5.


Un tipo di dato è classificato come Reference Type se lo spazio di memoria allocato per contenerlo non contiene direttamente il dato ma un puntatore ad un altro spazio di memoria. In sostanza, in queste celle, troviamo un indirizzo di memoria a cui far riferimento per accedere al dato. Un esempio di dato Reference è il tipo String.



Value Type


Un tipo di dati è un value type se contiene i dati nella propria allocazione di memoria. Fra i tipi di valore sono inclusi i seguenti:
  • Tutti i tipi di dati numerici
  • BooleanChar e Date
  • Tutte le strutture, anche se i relativi membri sono tipi riferimento
  • Le enumerazioni, in quanto il relativo tipo sottostante è sempre SByteShortIntegerLongByteUShortUIntegerULong
Ogni struttura è un tipo di valore, anche se contiene membri di tipo riferimento. Per questo motivo, i tipi di valore come Char e Integer vengono implementati dalle strutture di .NET Framework.
È possibile dichiarare un tipo valore tramite la parola chiave riservata, ad esempio Decimal. È inoltre possibile utilizzare la parola chiave New per inizializzare un tipo valore.

Reference Type

Un Reference Type contiene un puntatore a un'altra posizione di memoria contenente i dati. Fra i tipi di riferimento sono inclusi i seguenti:
  • String
  • Tutte le matrici, anche se i relativi elementi sono tipi valore
  • I tipi di classe, ad esempio Form
  • Delegati
Una classe è un tipo di riferimento. Per questo motivo, i tipi di riferimento come Object e String sono supportati dalle classi .NET Framework. Si noti che ogni matrice è un tipo di riferimento, anche se i suoi membri sono tipi valore.
Poiché ogni tipo di riferimento rappresenta una classe .NET Framework. sottostante, è necessario utilizzare New Operator parola chiave quando vengono inizializzate.

Commenti

Post popolari in questo blog

Resampling dei dati

Indici di performance di una strategia di trading. Calmar Ratio, Sharpe Ratio, Sortino Ratio

Metodi di calcolo del PNL