Тип данных, определенный пользователемUser-Defined Data Type

Хранит данные в определенном формате.Holds data in a format you define. StructureОператор определяет формат.The Structure statement defines the format.

Предыдущие версии Visual Basic поддерживают определяемый пользователем тип (UDT).Previous versions of Visual Basic support the user-defined type (UDT). Текущая версия расширяет определяемый пользователем тип на структуру.The current version expands the UDT to a structure. Структура — это объединение одного или нескольких элементов различных типов данных.A structure is a concatenation of one or more members of various data types. Visual Basic обрабатывает структуру как единое целое, хотя вы также можете обращаться к ее членам по отдельности.Visual Basic treats a structure as a single unit, although you can also access its members individually.

КомментарииRemarks

Определяйте и используйте тип данных Structure, если необходимо объединить различные типы данных в один блок или если ни один из простейших типов данных не подходит для ваших нужд.Define and use a structure data type when you need to combine various data types into a single unit, or when none of the elementary data types serve your needs.

Значение по умолчанию для типа данных Structure состоит из сочетания значений по умолчанию для каждого из его элементов.The default value of a structure data type consists of the combination of the default values of each of its members.

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

Объявление структуры начинается с оператора Structure и заканчивается End Structure инструкцией.A structure declaration starts with the Structure Statement and ends with the End Structure statement. StructureИнструкция предоставляет имя структуры, которая также является идентификатором типа данных, определяемого структурой.The Structure statement supplies the name of the structure, which is also the identifier of the data type the structure is defining. Другие части кода могут использовать этот идентификатор для объявления переменных, параметров и возвращаемых значений функций в качестве типа данных этой структуры.Other parts of the code can use this identifier to declare variables, parameters, and function return values to be of this structure's data type.

Объявления между Structure End Structure операторами и определяют элементы структуры.The declarations between the Structure and End Structure statements define the members of the structure.

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

Каждый член необходимо объявить с помощью оператора Dim или оператора, определяющего уровень доступа, например Public, Friendили Private.You must declare every member using a Dim Statement or a statement that specifies access level, such as Public, Friend, or Private. При использовании Dim инструкции уровень доступа по умолчанию равен public.If you use a Dim statement, the access level defaults to public.

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

  • Потребление памяти.Memory Consumption. Как и для всех составных типов данных, вы не можете безопасно вычислить общее потребление памяти для структуры, добавив в них номинальные объемы выделяемого пространства для его членов.As with all composite data types, you cannot safely calculate the total memory consumption of a structure by adding together the nominal storage allocations of its members. Кроме того, нельзя безопасно предположить, что порядок хранения в памяти совпадает с порядком объявления.Furthermore, you cannot safely assume that the order of storage in memory is the same as your order of declaration. Если необходимо управлять структурой хранилища структуры, можно применить StructLayoutAttribute атрибут к Structure оператору.If you need to control the storage layout of a structure, you can apply the StructLayoutAttribute attribute to the Structure statement.

  • Вопросы взаимодействия.Interop Considerations. Если вы взаимодействуете с компонентами, которые не написаны для .NET Framework, например автоматизации или COM-объекты, помните, что определяемые пользователем типы в других средах несовместимы с типами структуры Visual Basic.If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, keep in mind that user-defined types in other environments are not compatible with Visual Basic structure types.

  • Расширяющие.Widening. Автоматическое преобразование в любой тип данных структуры или из него отсутствует.There is no automatic conversion to or from any structure data type. Операторы преобразования в структуре можно определить с помощью оператора оператора, а каждый оператор преобразования можно объявить как Widening или Narrowing .You can define conversion operators on your structure using the Operator Statement, and you can declare each conversion operator to be Widening or Narrowing.

  • Символы типа.Type Characters. Типы данных структуры не имеют символа литерального типа или символа типа идентификатора.Structure data types have no literal type character or identifier type character.

  • Тип Framework.Framework Type. В .NET Framework нет соответствующего типа.There is no corresponding type in the .NET Framework. Все структуры наследуют от класса .NET Framework System.ValueType , но никакая отдельная структура не соответствует System.ValueType .All structures inherit from the .NET Framework class System.ValueType, but no individual structure corresponds to System.ValueType.

ПримерExample

В следующей парадигме показана структура объявления структуры.The following paradigm shows the outline of the declaration of a structure.

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

См. также разделSee also