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:
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.
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.
UTILIZZO DI TIPI DI DATI OBJECT
- 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
È 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:
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
È 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.
È 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
Posta un commento