.Net arrays con límite inferior> 0
Aunque quizás sea algo extraño querer hacer, necesito crear una matriz en .Net con un límite inferior> 0. Esto al principio parece posible, usando:
Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Produce los resultados deseados (una matriz de objetos con un límite inferior establecido en 9). Sin embargo, la instancia de matriz creada ya no se puede pasar a otros métodos que esperanObject[]
dándome un error diciendo que:
System.Object[*]
no se puede convertir en unSystem.Object[]
. ¿Cuál es esta diferencia en los tipos de matriz y cómo puedo superar esto?
Edit: código de prueba =
Object x = Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Object[] y = (Object[])x;
Que falla con: "No se puede convertir el objeto del tipo 'System.Object [*]' para escribir 'System.Object []'."
También me gustaría señalar que este enfoqueHAC funciona cuando se utilizan varias dimensiones:
Object x = Array.CreateInstance(typeof(Object), new int[] {2,2}, new int[] {9,9});
Object[,] y = (Object[,])x;
Lo que funciona bien.