.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.

Respuestas a la pregunta(4)

Su respuesta a la pregunta