In Visual Basic, gli array rappresentano una struttura di lunghezza fissa o variabile che memorizza elementi dello stesso tipo. Gli array dinamici richiedono particolare attenzione durante l'inizializzazione e la modifica della dimensione.
In VB6 c'erano solo array statici e dinamici, di dimensione fissa o variabile. In VB.NET sono implementati array unidimensionali, multidimensionali e a gradini di qualsiasi tipo con controllo del tipo.
Errori comuni —
Inizializzare sempre l'array prima dell'uso e modificare la sua dimensione con cautela:
' Dichiarazione Dim arr() As Integer ' Inizializzazione ReDim arr(4) ' Indici 0–4 arr(0) = 1 ' Modifica delle dimensioni mantenendo i valori ReDim Preserve arr(6)
Caratteristiche chiave:
Cosa succede se dichiaro un array ma non lo inizializzo?
Per gli array unidimensionali di tipo Dim arr() As Integer, la variabile esiste, ma l'array stesso non viene allocato; l'accesso a arr.Length solleverà un'eccezione.
Posso usare ReDim Preserve per modificare la dimensione di un array multidimensionale su entrambe le dimensioni?
No, ReDim Preserve consente solo di modificare l'ultima dimensione, altrimenti si verifica un errore di runtime.
Cosa succederà agli elementi dell'array quando aumento la dimensione tramite ReDim Preserve?
I valori precedenti verranno mantenuti e i nuovi elementi riceveranno valori predefiniti (ad esempio, 0 per Integer, Nothing per i tipi di riferimento).
** Caso negativo
L'array è dichiarato ma non inizializzato (Dim arr() As Integer), e quando accediamo a arr.Length otteniamo NullReferenceException.
Vantaggi:
Svantaggi:
** Caso positivo
L'array è sempre inizializzato esplicitamente tramite ReDim, il cambio di dimensione avviene solo al di fuori del ciclo principale, e per liste spesso cambiate si utilizza List(Of Integer).
Vantaggi:
Svantaggi: