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


Составные типы данных (Visual Basic)

Помимо базовых типов данных Visual Basic, можно также собрать элементы различных типов для создания составных типов данных, таких как структуры, массивы и классы. Вы можете создавать составные типы данных из простых типов и из других составных типов. Например, можно определить массив элементов структуры или структуру с элементами массива.

Типы данных

Составной тип отличается от типа данных любого из его компонентов. Например, массив Integer элементов не является типом Integer данных.

Тип данных массива обычно представляется с помощью типа элемента, круглых скобок и запятых при необходимости. Например, одномерный массив String элементов представлен в виде String()двухмерного массива Boolean элементов Boolean(,).

Типы структур

Существует ни один тип данных, состоящий из всех структур. Вместо этого каждое определение структуры представляет уникальный тип данных, даже если две структуры определяют идентичные элементы в одном порядке. Однако если вы создаете два или более экземпляров одной структуры, Visual Basic считает их одинаковым типом данных.

Кортежи

Кортеж — это упрощенная структура, содержащая два или более полей, типы которых предопределяются. Кортежи поддерживаются начиная с Visual Basic 2017. Кортежи чаще всего используются для возврата нескольких значений из одного вызова метода, не передавая аргументы по ссылке или упаковывая возвращаемые поля в более тяжелый класс или структуру. Дополнительные сведения о кортежах см. в разделе кортежей.

Типы массивов

Существует ни один тип данных, состоящий из всех массивов. Тип данных определенного экземпляра массива определяется следующим образом:

  • Факт бытия массива

  • Ранг (число измерений) массива

  • Тип элемента массива

В частности, длина заданного измерения не является частью типа данных экземпляра. Это показано в следующем примере.

Dim arrayA( ) As Byte = New Byte(12) {}  
Dim arrayB( ) As Byte = New Byte(100) {}  
Dim arrayC( ) As Short = New Short(100) {}  
Dim arrayD( , ) As Short  
Dim arrayE( , ) As Short = New Short(4, 10) {}  

В предыдущем примере переменные arrayA массива и arrayB считаются одинаковыми типами данных, Byte() даже если они инициализированы в разные длины. Переменные arrayB и arrayC не являются одинаковыми типами, так как их типы элементов отличаются. Переменные и arrayD не имеют одного типа, так как их ряды arrayC отличаются. Переменные arrayD и arrayE имеют один и тот же тип , Short(,) так как их типы и типы элементов одинаковы, даже если arrayD они еще не инициализированы.

Дополнительные сведения о массивах см. в разделе "Массивы".

Типы классов

Существует ни один тип данных, состоящий из всех классов. Хотя один класс может наследоваться от другого класса, каждый из них является отдельным типом данных. Несколько экземпляров одного класса имеют один и тот же тип данных. Если назначить одну переменную экземпляра класса другой, они не только имеют один и тот же тип данных, они указывают на тот же экземпляр класса в памяти.

Дополнительные сведения о классах см. в разделе "Объекты и классы".

См. также