arrays - multidimensionales - visual basic char array
¿Los índices de matriz están basados en VB6? (2)
La respuesta corta es que los límites inferiores de la matriz son lo que usted dice que sean.
El valor predeterminado es base 0
(a menos que sea reemplazado por Option Base 1
), pero puede declarar un límite inferior a cualquier valor que desee ( Dim arr(-42 To 42)
es tan válido como Dim(3)
).
Además, si un objeto devuelve una matriz, su límite inferior es lo que el objeto lo establezca. Por ejemplo, una referencia de Excel
Range.Value
devolverá una matriz basada en 1
.
Estoy revisando una traducción automática del código VB6 a C # y el convertidor tradujo someArray(3)
a someArray[3]
. Pero de acuerdo con la documentación del código antiguo, debe elegir el tercer elemento, no el cuarto, como lo hace en la versión traducida.
¿Los índices de matriz están basados en VB6? ¿O empiezan a 1?
Sí, las matrices son (generalmente) 0 basadas en VB6
Las excepciones a esto son cuando se ha utilizado Dim someArray(1 To 10) as Int
explícito Dim someArray(1 To 10) as Int
sintaxis Dim someArray(1 To 10) as Int
, o cuando se declara Option Base 1
en la parte superior del módulo de código.
Son Collections
que no lo son: cuando recorres los objetos de la Collection
, estoy bastante seguro de que están basados en 1.