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 , ad esempio strutture, matrici e classi. È possibile compilare tipi di dati compositi da tipi elementari e da altri tipi compositi. Ad esempio, è possibile definire una matrice di elementi della struttura o una struttura con membri della matrice.

Tipi di dati

Un tipo composito è diverso dal tipo di dati di uno dei relativi componenti. Ad esempio, una matrice di Integer elementi non è del Integer tipo di dati.

Un tipo di dati matrice viene in genere rappresentato usando il tipo di elemento, le parentesi e le virgole in base alle esigenze. Ad esempio, una matrice unidimensionale di String elementi è rappresentata come String()e una matrice bidimensionale di Boolean elementi è 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 li 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 al 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 particolare istanza di una matrice è determinato dai seguenti:

  • Il fatto di essere una matrice

  • Classificazione (numero di dimensioni) della matrice

  • Tipo di elemento della matrice

In particolare, la lunghezza di una determinata dimensione non fa parte del tipo di dati dell'istanza. Questa condizione è illustrata 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 arrayA di matrice 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 rispettive classificazioni sono diverse. Le variabili arrayD e arrayE hanno lo stesso tipo : Short(,) perché i relativi tipi di rango e 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 classe a un'altra, non solo hanno lo stesso tipo di dati, puntano alla stessa istanza della classe in memoria.

Per altre informazioni sulle classi, vedere Oggetti e classi.

Vedi anche