VALUE TYPE E REFERENCE TYPE: la classificazione dei dati



In VB.NET, 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 value type; se contiene un puntatore a dati che si trovano altrove si tratta di un reference type.




VALUE TYPES

Un value type è un tipo valore se contiene i dati nella propria allocazione di memoria. Fra i tipi di valore 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 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. Questo risulta particolarmente utile se il tipo presenta un costruttore che richiede parametri. Un esempio è rappresentato dal costruttore Decimal(Int32, Int32, Int32, Boolean, Byte), che compila un nuovo valore Decimal dalle parti fornite.

REFERENCE TYPES

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. Di seguito è riportata un'istruzione per l'inizializzazione di una matrice.




Dim totals() As Single = New Single(8) {}


ELEMENTI DIVERSI DAI TYPE


Gli elementi di programmazione riportati di seguito non si qualificano come types poiché non è possibile specificarli come tipi di dati per gli elementi dichiarati.

  • Spazi dei nomi
  • Moduli
  • Eventi
  • Proprietà e routine
  • Variabili, costanti e campi


UTILIZZO DI TIPI DI DATI OBJECT
È possibile assegnare un tipo riferimento o un tipo valore a una variabile del tipo di dati Object. Una variabile Object contiene sempre un puntatore ai dati, mai i dati stessi. Se tuttavia si assegna un tipo valore a una variabile Object, essa funzionerà come se contenesse effettivamente i propri dati. Per ulteriori informazioni, vedere Object Data Type.
È possibile verificare se Object la variabile viene utilizzata come un tipo di riferimento o un tipo di valore passandola a IsReference metodo inInformation classe di Microsoft.VisualBasic spazio dei nomi. Se il contenuto della variabile Object rappresenta un tipo di riferimento, Information.IsReference restituisce True.

Commenti

Post popolari in questo blog

CAPM: Capital Asset Pricing Model

METODI DI PARSING: esempio in VB.NET e C#

DRAWSTRING E MISURESTRING: alcune funzioni grafiche di VB.NET