Скачиваний:
79
Добавлен:
02.05.2014
Размер:
145.92 Кб
Скачать

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

Кроме встроенных типов данных, таких как Integer, Long и т.п.. Visual Basic поддерживает также типы данных, определяемые пользователем. Они могут быть созданы как на основе встроенных типов данных, так и на основе ранее определенных пользователем.

Для определения пользовательского типа данных используется ключевое слово Type:

[Private I Public] Type Имя_типа

Елеыент1 [([Размерность])] As Тип

[Елемент2 [([Размерность])] As Тип]

End Type

Определение общего (Public) собственного типа данных возможно только в секции (General) (Declarations) модуля. В этом случае этот тип будет доступен во всех процедурах всех форм, модулей и модулей классов. Для определения пользовательского типа данных в форме или модуле класса следует использовать ключевое слово Private, поскольку объявление общего типа в данной ситуации не допускается. При этом область видимости такого типа будет ограничена тем контейнером, где он объявлен.

Определив собственный тип данных, вы можете использовать его для объявления переменных этого типа. Эти переменные могут быть локальными, глобальными или переменными контейнера:

'(General)(Declarations) (Module) Type

usrGoodsTypeGoods

Num As Long

Name As String * 40

Price As Currency End Type

'(General)(Declarations) (Form)

Dim usrTools As usrGoodsType

Private Sub Commandl_Click ()

usrTools.Name = "Отвертка"

usrTools. Price =2.95

End Sub

В этом примере в секции объявлений модуля определяется глобальный тип данных usrGoodsType. Затем в секции объявлений формы объявляется доступная в контейнере переменная usrTools типа usrGoodsType, а конкретные значения составляющих этой переменной устанавливаются в процедуре commandl_click().

Доступ к элементам переменной пользовательского типа осуществляется, по аналогии с доступом к свойствам, путем указания точки после имени переменной. При этом переменные одинакового типа можно присваивать не поэлементно, а напрямую:

'(General)(Declarations) (Module) Type usrPerson

Name As usrName

Number As Integer

End Type

Public usrCustomer As usrPerson, usrSupplier As usrPerson

Private Sub Commandl_Click()

usrSupplier.Name = "Ilse"

usrSupplier.Number = 21873

usrCustomer = usrSupplier

End Sub

Переменные usrSupplier и u srCustomer относятся к одному типу usrPerson. Поэтому они присваиваться напрямую, а не поэлементно. Пользовательские типы данных могут быть составными. В этом случае важна оследовательность определения типов. Сначала нужно определить базисный тип, который будет использо ваться далее в составных типах. Если не соблюдать это правило, то после запуска программы появится сообщение об ошибке. Ниже приводится пример использования составных пользовательских типов данных:

' (General)(Declarations) (Module)

Type usrName

FirstName As String

Name As String * 40

End Type

'(General)(Declarations) (Module)

Private Type usrPerson

Name As usrName

BirthDate As Date

End Type

Dim usrCustomer As usrPerson

Private Sub Conimandl__Click ()

usrCustomer.Name.FirstName = "Rene"

usrCustomer.Name.Name = "Lampe"

End Sub

Данные пользовательского типа рекомендуется использовать при обработке данных неизменной структуры.