Несмотря на то, что, возможно, дело в том, что нужно делать, мне нужно создать массив в .Net с нижней границей > 0. Это сначала кажется возможным, используя:
Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Производит требуемые результаты (массив объектов с нижней границей, установленными в 9). Однако созданный экземпляр массива больше не может передаваться другим методам, ожидающим Object[]
, давая мне ошибку, говорящую, что:
System.Object[*]
нельзя вставить в System.Object[]
. Каково это различие в типах массивов и как я могу это преодолеть?
Изменить: test code =
Object x = Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Object[] y = (Object[])x;
Сбой: "Невозможно передать объект типа" System.Object [*] "для ввода" System.Object [] ".
Я также хотел бы отметить, что этот подход DOES работает при использовании нескольких измерений:
Object x = Array.CreateInstance(typeof(Object), new int[] {2,2}, new int[] {9,9});
Object[,] y = (Object[,])x;
Что отлично работает.