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

ORDER MATCHING: acquisti e vendite, come ordinarli?

EREDITARIETÀ INFORMATICA

CAPM: Capital Asset Pricing Model