No entiendo el propósito de Array.GetLowerBound().¿Cuál es el propósito de Array.GetLowerBound (int)?
¿Alguna vez devuelve un valor distinto de cero? ¿Cuando? ¿Cómo?
Gracias.
No entiendo el propósito de Array.GetLowerBound().¿Cuál es el propósito de Array.GetLowerBound (int)?
¿Alguna vez devuelve un valor distinto de cero? ¿Cuando? ¿Cómo?
Gracias.
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.
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.
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.)
escrito mal la quiebra. :) – quillbreaker
escribiste mal 'mal escrito';) – Marc
No, realmente quise decir 'barroco' como en 'monstruosidad barroca', en lugar de 'si no es barroco, no lo arregles'. ; -} – ConcernedOfTunbridgeWells