1. У объекта типа Array есть возможность изменения размеров, не командой ReDim правда, но методом Resize (
смотреть тут).
2. Разберемся с кодом номер 2.
- Код: Выделить всё
Dim X(,) As Complex
Dim Y(,) As Complex = New Complex(2, 3) {}
это две строчки объявляют двумерный массив X и двумерный массив Y размером 3*4. Ни в одном из этих массивов члены не инициализируются.
- Код: Выделить всё
ReDim X(2, 10)
здесь размер массива устанавливается в 3*11, инициализации элементов опять же нет.
- Код: Выделить всё
X(0, 4) = Cmplx(3, 4)
сия строка мне вообще не понятна, либо должно быть New Complex(3, 4), или Cmplx некая функция возвращающая объект типа Complex?
- Код: Выделить всё
X(0, 6) = X(0, 0) + X(0, 4) ' вызывает ошибку транслятора, т.к. ячейка матрицы X(0, 0) имеет значение Nothing
естественно вызывает.... эту ячейку никто не инициализипровал
- Код: Выделить всё
ReDim Preserve X(2, 5)
Здесь размеры опять же меняются, но опять инициализации никакой
3. Собственно мало чем отличется от пункта 2. Инициализации здесь нет!
Инициализировать массивы при объявлении можно, смотри мой предыдущи пост в этой теме. После ReDim Preserve все дополнительные элементы нужно заново инициализировать через вызов конструктора.
К автору вопрос, чего он конкретно хочет? Ибо в общем случае, все равно придется проходить циклом по всем элементам массива с целью их инициализации.