atrizes @ .Net com limite inferior> 0
Embora talvez seja uma coisa bizarra a ser feita, eu preciso criar uma matriz em .Net com um limite inferior> 0. Isso no início parece possível, usando:
Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Produz os resultados desejados (uma matriz de objetos com um limite inferior definido como 9). No entanto, a instância da matriz criada não pode mais ser passada para outros métodos que esperamObject[]
me dando um erro dizendo que:
System.Object[*]
não pode ser convertido em umSystem.Object[]
. Qual é essa diferença nos tipos de matriz e como posso superar isso?
Edit: código de teste =
Object x = Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Object[] y = (Object[])x;
Que falha com: "Não foi possível converter o objeto do tipo 'System.Object [*]' para o tipo 'System.Object []'."
Gostaria também de observar que essa abordagemFA trabalhe ao usar várias dimensões:
Object x = Array.CreateInstance(typeof(Object), new int[] {2,2}, new int[] {9,9});
Object[,] y = (Object[,])x;
Que funciona bem.