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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Задачи

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

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

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

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

Ссылки

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

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

Массивы в Visual Basic

Преобразование массивов (Visual Basic)