visual multidimensionales multidimensional matrices initialize inicializar como arreglo array arrays vb6 vb6-migration

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.