Поделиться через


Практическое руководство. Присвоение одного массива другому

Обновлен: Ноябрь 2007

Поскольку массивы являются объектами, их можно использовать в операторах присвоения, как и другие типы объектов. Если переменная массива содержит указатель на данные, составляющие элементы массива, и сведения о ранге и длине, операция присвоения копирует только этот указатель.

Чтобы присвоить один массив другому

  1. Убедитесь, что два массива имеют одинаковый ранг (число измерений) и совместимый тип данных элементов.

  2. Для присваивания исходного массива конечному массиву используйте стандартный оператор присваивания. Не указывайте скобки после имени массива.

    Dim formArray() As System.Windows.Forms.Form
    Dim controlArray() As System.Windows.Forms.Control
    controlArray = formArray
    

При присвоении одного массива другому действуют следующие правила:

  • Равенство ранга. Ранг (число измерений) конечного массива должен быть равен рангу исходного.

    Если массивы имеют равные ранги, их размерности не обязательно должны совпадать. Число элементов в определенном измерении может изменяться в ходе присвоения.

  • Типы элементов. Оба массива должны состоять из элементов либо ссылочного типа, либо типа значений. Дополнительные сведения см. в разделе Типы значений и ссылочные типы.

    • Если оба массива состоят из элементов типа значения, типы их элементов должны в точности совпадать. Единственным исключением является присваивание массива элементов Enum массиву базового для заданного типа Enum типа.

    • Если оба массива содержат элементы ссылочного типа, исходный тип элементов должен быть производным от конечного типа элементов. В этом случае два массива имеют такое же отношение наследования, что и их элементы. Эта зависимость называется ковариацией массивов.

Компилятор выдает ошибку, если вышеперечисленные правила нарушены, например, если не совместимы типы данных или не совпадают ранги массивов. Перед присвоением можно добавить функцию обработки ошибок для проверки совместимости массивов. Можно также использовать ключевое слово TryCast, если необходимо не допустить возникновения исключения.

См. также

Задачи

Практическое руководство. Объявление переменной типа массива

Практическое руководство. Создание массива

Практическое руководство. Инициализация переменной типа массива

Практическое руководство. Изменение размера массива

Практическое руководство. Замена массива на другой массив

Практическое руководство. Передача массива в процедуру или свойство

Практическое руководство. Возврат массива из процедуры или свойства

Устранение неполадок, связанных с массивами

Основные понятия

Преобразования массивов

Ссылки

Оператор Enum (Visual Basic)

Другие ресурсы

Массивы в Visual Basic