2009-08-19 34 views

Respuesta

7

En una matriz multidimensional en VB o varias API derivadas de COM, puede consultar el límite inferior por dimensión. Los tipos de matriz pueden estar basados ​​en 0 o 1 (es decir, comenzando desde cero o 1) y esto también se aplica a las matrices multidimensionales.

Esto también se puede aplicar a las matrices expuestas a través de interoperabilidad COM. Por ejemplo, muchas API de Excel utilizan matrices basadas en 1 y muchas funciones de API utilizan matrices variantes como parámetros (la variante se inventó esencialmente como un tipo de datos para una celda de hoja de cálculo).

Al usar la interoperabilidad COM todavía tiene que jugar muy bien con estas API y escribir sistemas. Originalmente fueron diseñados para ser utilizados con VBA, y las variantes de lenguaje 'clásico' VB4-6 tenían un sistema de tipo verdaderamente barroco debido a su estrecho acoplamiento con COM. Los sistemas de tipo .Net de C# et. Alabama. son un poco menos dolorosos que sus predecesores basados ​​en COM, pero todavía puede sentir el dolor cuando usa interoperabilidad COM.

+2

escrito mal la quiebra. :) – quillbreaker

+9

escribiste mal 'mal escrito';) – Marc

+6

No, realmente quise decir 'barroco' como en 'monstruosidad barroca', en lugar de 'si no es barroco, no lo arregles'. ; -} – ConcernedOfTunbridgeWells

16

Teóricamente, puede crear matrices con cualquier límite superior o inferior para la indexación. VB.NET puede usar esto para hacer arreglos con un límite inferior de 1 para ser compatible con algunas versiones anteriores de VB, pero puedes usar Array.CreateInstance(Type,Int32[],Int32[]) para crear una matriz con cualquier límite inferior que desees.

3

Hay una CreateInstance llamada que establece-no cero límites inferiores:

CreateInstance(Type, Int32[], Int32[])
crea una matriz multidimensional de las longitudes Tipo y dimensión especificada, con los límites inferiores especificados.

comparar esto con:

CreateInstance(Type, Int32[])
crea una matriz multidimensional de las longitudes tipo y las dimensiones especificadas, con la indexación de base cero. Las longitudes de las dimensiones se especifican en una matriz de enteros de 32 bits.

(oa cualquiera de los otros sobrecargas, de hecho. De los seis CreateInstance sobrecargas, cinco crear una matriz de base cero.)

Cuestiones relacionadas