Структуры подобны классам в том смысле, что они представляют структуры данных и методы для работы с ними. Однако в отличие от классов структуры являются размерными типами и не требуют выделения памяти в куче. Переменная типа «структура» непосредственно содержит данные структуры, в то время как переменная типа «класс» содержит ссылку на данные, называемые объектом.
Структуры уместно использовать для небольших структур данных с семантикой размерных типов. Комплексные числа, точки в координатной системе, пары «ключ-значение» в словарях - все это хорошие примеры структур. Основным является то, что они не содержат значительного объема данных, не требуют наследуемости и ссылочной идентичности, а также могут применяться с размерной семантикой, когда присваивание копирует значение вместо ссылки.
Определение структур производится следующим образом.
struct-declaration:
attributesopt struct-modifiersopt Struct struct-name struct-interfacesopt struct-body
End Struct struct-nameopt ;
struct-name:
identifier
Определение структуры может опционально содержать следующие модификаторы.
struct-modifiers:
struct-modifier
struct-modifiers struct-modifier
struct-modifier:
Public
Friend
Модификаторы при определении структуры имеют то же значение, что и при определении класса. При повторении одного и того же модификатора выдается ошибка компиляции.
Определение структуры может содержать реализацию интерфейсов.
struct-interfaces:
: interface-type-list
Реализация интерфейсов описана в разделе Интерфейсы: Реализация интерфейсов.
Тело структуры состоит из определений ее членов.
struct-body:
struct-member-declarationsopt
См.также: