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