En Visual Basic, los arreglos son una estructura de longitud fija o variable que almacena elementos del mismo tipo. Los arreglos dinámicos requieren especial atención al ser inicializados y al cambiar su tamaño.
En VB6 solo había arreglos estáticos y dinámicos, con tamaño fijo o variable. En VB.NET se implementan arreglos unidimensionales, multidimensionales y de escalera de cualquier tipo con seguridad de tipos.
Errores frecuentes —
Siempre inicializa el arreglo antes de usarlo y cambia su tamaño con cuidado:
' Declaración Dim arr() As Integer ' Inicialización ReDim arr(4) ' Índices 0–4 arr(0) = 1 ' Cambio de tamaño conservando valores ReDim Preserve arr(6)
Características clave:
¿Qué sucede si se declara un arreglo pero no se inicializa?
Para arreglos unidimensionales del tipo Dim arr() As Integer, la variable existe, pero el arreglo no se asigna, el acceso a arr.Length generará una excepción.
¿Se puede usar ReDim Preserve para cambiar el tamaño de un arreglo multidimensional en ambas dimensiones?
No, ReDim Preserve solo permite cambiar la última dimensión, de lo contrario habrá un error en tiempo de ejecución.
¿Qué pasará con los elementos del arreglo al aumentar su tamaño mediante ReDim Preserve?
Los valores antiguos se conservarán, y los nuevos elementos recibirán valores predeterminados (por ejemplo, 0 para Integer, Nothing para tipos de referencia).
** Caso negativo
El arreglo se declara, pero no se inicializa (Dim arr() As Integer), y al acceder a arr.Length obtenemos NullReferenceException.
Pros:
Contras:
** Caso positivo
El arreglo siempre se inicializa explícitamente mediante ReDim, el cambio de tamaño se realiza solo fuera del ciclo principal, y para listas que cambian frecuentemente se utiliza List(Of Integer).
Pros:
Contras: