Тип данных, определенный пользователем

Содержит данные в определенном пользователем формате. Оператор Structure определяет формат.

Предыдущие версии Visual Basic поддерживают определяемый пользователем тип данных (UDT). Текущая версия расширяет UDT до структуры. Структура — это объединение одного или нескольких членов любых типов данных. Visual Basic обрабатывает структуру как единое целое, хотя можно получить доступ к членам по отдельности.

Заметки

Определяйте и используйте структуры данных, когда требуется объединить в единое целое различные типы данных, или когда ни один из простейших типов данных не подходит для выполнения требуемых условий.

Значение по умолчанию для структуры данных состоит из комбинации значений по умолчанию каждого из ее членов.

Формат объявления

Объявление структуры начинается с оператора Оператор Structure и завершается оператором End Structure. Оператор Structure содержит имя структуры, которая является также идентификатором типа данных, определяемых структурой. Другие части кода могут использовать этот идентификатор для объявления переменных, параметров и возвращаемых значений функций в качестве типа данных структуры.

Объявления между операторами Structure и End Structure определяют члены структуры.

Уровни доступа к членам

Каждый член необходимо объявить с помощью оператора Оператор Dim (Visual Basic) или оператора, определяющего уровень доступа, например, Public (Visual Basic) или Friend (Visual Basic) или Private (Visual Basic). Если используется оператор Dim, то уровень доступа по умолчанию является открытым (Public).

Советы по программированию

  • Потребление ресурсов памяти. Как и для всех составных типов данных, нельзя точно подсчитать общее потребление ресурсов памяти структуры простым сложением номинальных объемов памяти, занимаемых отдельными членами структуры. Более того, нельзя однозначно полагать, что порядок расположения элементов в памяти такой же, как и порядок их объявления. Если требуется контролировать расположение структуры в памяти, можно применить атрибут StructLayoutAttribute в операторе Structure.

  • Вопросы взаимодействия. При взаимодействии с компонентами, написанными не для платформы .NET Framework, например, с объектами автоматизации или COM-объектами, имейте в виду, что определяемые пользователем типы в других средах несовместимы с типами структуры Visual Basic.

  • Расширение. Автоматического прямого или обратного преобразования в любой тип данных структуры не существует. Операторы преобразования можно определить для структуры с помощью оператора Оператор Operator; кроме того, можно объявлять каждый оператор преобразования как Widening или Narrowing.

  • Символы типов. Типы данных структуры не имеют буквенного символа или идентификатора.

  • Тип Framework.. В платформе .NET Framework отсутствует соответствующий тип. Все структуры наследуются от класса .NET Framework ValueType, но ни одна из отдельных структур не соответствует классу ValueType.

Пример

В следующем примере демонстрируется объявление структуры.

[Public | Protected | Friend | Protected Friend | Private] Structure structname
    {Dim | Public | Friend | Private} member1 As datatype1
    ' ...
    {Dim | Public | Friend | Private} memberN As datatypeN
End Structure

См. также

Ссылки

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

ValueType

Функции преобразования типов (Visual Basic)

Сводка по преобразованию (Visual Basic)

Оператор Structure

Widening (Visual Basic)

Narrowing (Visual Basic)

StructLayoutAttribute

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

Эффективное использование типов данных (Visual Basic)

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

Структуры (Visual Basic)