Tipi di dati compositi (Visual Basic)
Oltre ai tipi di dati elementari forniti da Visual Basic, è anche possibile assemblare elementi di tipi diversi per creare tipi di dati compositi come strutture, matrici e classi. È possibile creare tipi di dati compositi da tipi elementari e da altri tipi compositi. Ad esempio, è possibile definire una matrice di elementi struttura o una struttura con membri di matrice.
Tipi di dati
Un tipo composito è diverso dal tipo di dati di uno dei relativi componenti. Ad esempio, una matrice di elementi Integer
non è del tipo di dati Integer
.
Il tipo di dati di una matrice viene in genere rappresentato usando il tipo di elemento, le parentesi e le virgole se necessario. Ad esempio, una matrice unidimensionale di elementi String
viene rappresentata come String()
e una matrice bidimensionale di elementi Boolean
viene rappresentata come Boolean(,)
.
Tipi di struttura
Non esiste un singolo tipo di dati che comprende tutte le strutture. Ogni definizione di una struttura rappresenta invece un tipo di dati univoco, anche se due strutture definiscono elementi identici nello stesso ordine. Tuttavia, se si creano due o più istanze della stessa struttura, Visual Basic le considera dello stesso tipo di dati.
Tuple
Una tupla è una struttura leggera che contiene due o più campi i cui tipi sono predefiniti. Le tuple sono supportate a partire da Visual Basic 2017. Le tuple vengono comunemente usate per restituire più valori da una singola chiamata a un metodo senza dover passare argomenti per riferimento o creare un pacchetto dei campi restituiti in una classe o una struttura più pesante. Per altre informazioni sulle tuple, vedere l'argomento Tuple.
Tipi di matrici
Non esiste un singolo tipo di dati che comprende tutte le matrici. Il tipo di dati di una determinata istanza di una matrice è determinato da quanto segue:
Il fatto di essere una matrice
La classificazione (numero di dimensioni) della matrice
Il tipo di elemento della matrice
In particolare, la lunghezza di una determinata dimensione non fa parte del tipo di dati dell'istanza. Ciò è illustrato nell'esempio seguente.
Dim arrayA( ) As Byte = New Byte(12) {}
Dim arrayB( ) As Byte = New Byte(100) {}
Dim arrayC( ) As Short = New Short(100) {}
Dim arrayD( , ) As Short
Dim arrayE( , ) As Short = New Short(4, 10) {}
Nell'esempio precedente, le variabili di matrice arrayA
e arrayB
vengono considerate dello stesso tipo di dati, Byte()
, anche se vengono inizializzate in lunghezze diverse. Le variabili arrayB
e arrayC
non sono dello stesso tipo perché i relativi tipi di elemento sono diversi. Le variabili arrayC
e arrayD
non sono dello stesso tipo perché le relative classificazioni sono diverse. Le variabili arrayD
e arrayE
hanno lo stesso tipo, Short(,)
, perché le classificazioni e i tipi di elemento sono uguali, anche se arrayD
non è ancora inizializzato.
Per altre informazioni sulle matrici, vedere Matrici.
Tipi di classe
Non esiste un singolo tipo di dati che comprende tutte le classi. Anche se una classe può ereditare da un'altra classe, ognuna è un tipo di dati separato. Più istanze della stessa classe sono dello stesso tipo di dati. Se si assegna una variabile di istanza di una classe a un'altra, non solo hanno lo stesso tipo di dati, ma puntano alla stessa istanza di classe in memoria.
Per altre informazioni sulle classi, vedere Oggetti e classi.