Value Type & Reference Type


In Visual Basic, i tipi di dati vengono implementati in base alla classificazione. I tipi di dati Visual Basic possono essere classificati a seconda che una variabile di un determinato tipo archivi i propri dati piuttosto che un puntatore ai dati. Se la variabile memorizza internamente i propri dati si tratta di un tipo di valore (Value type); se contiene un puntatore a dati che si trovano altrove si tratta di un tipo di riferimento (Reference type).
Un Value type è definito tale se contiene i dati nella propria allocazione di memoria. Fra i Value Types sono inclusi i seguenti:
  • Tutti i tipi di dati numerici
  • Boolean, Char e Date
  • Tutte le strutture, anche se i relativi membri sono tipi riferimento
  • Le enumerazioni, in quanto il relativo tipo sottostante è sempre SByte, Short, Integer, Long, Byte, UShort, UIntegero ULong
Ogni struttura è un Value Type, anche se contiene membri di Reference Type. Per questo motivo, i Value type come Char e Integer vengono implementati dalle strutture di .NET Framework.
È possibile dichiarare un Value type tramite la parola chiave riservata, ad esempio Decimal. È inoltre possibile utilizzare la parola chiave New per inizializzare un Value type. Questo risulta particolarmente utile se il tipo presenta un costruttore che richiede parametri.
Un Reference Type contiene un puntatore a un'altra posizione di memoria contenente i dati. Fra i  Reference Types 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  Reference Type. Per questo motivo, i  Reference Types come Object e String sono supportati dalle classi .NET Framework. Si noti che ogni matrice è un  Reference Type, anche se i suoi membri sono Value Types.
Poiché ogni Reference Type rappresenta una classe .NET Framework. sottostante, è necessario utilizzare New Operator parola chiave quando vengono inizializzate.

Commenti

Post popolari in questo blog

Il moto browniano geometrico

Resampling dei dati

Generazioni di variabili aleatorie