Condividi tramite


Tipi valore e tipi riferimento

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; se contiene un puntatore a dati che si trovano altrove si tratta di un tipo di riferimento.

Tipi valore

Un tipo di dati è 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 #ctor(Int32, Int32, Int32, Boolean, Byte), che compila un nuovo valore Decimal dalle parti fornite.

Tipi di riferimento

Un tipo riferimento 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 Operatore New (Visual Basic) 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 tipi

Gli elementi di programmazione riportati di seguito non si qualificano come tipi 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 Tipo di dati Object.

È possibile verificare se Object la variabile viene utilizzata come un tipo di riferimento o un tipo di valore passandola a IsReference metodo in Information classe di Microsoft.VisualBasic spazio dei nomi. Se il contenuto della variabile Object rappresenta un tipo di riferimento, Information.IsReference restituisce True.

Vedere anche

Riferimenti

Istruzione Structure

Tipo di dati Object

Concetti

Tipi di valori nullable (Visual Basic)

Utilizzo efficiente dei tipi di dati (Visual Basic)

Tipi di dati in Visual Basic

Altre risorse

Conversioni di tipi in Visual Basic