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


Пользовательский тип данных

Содержит данные в определенном формате. Инструкция Structure определяет формат.

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

Замечания

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

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

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

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

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

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

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

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

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

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

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

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

  • Тип платформы. В платформа .NET Framework отсутствует соответствующий тип. Все структуры наследуются от класса System.ValueTypeплатформа .NET Framework, но не соответствует отдельной System.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

См. также