Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




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

Поль­зовательские типы полезны, когда требуется создать единственную переменную, которая должна хранить несколько связанных порций информации.

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

Private Type DataTypel

или

Public Type DataType2

В примере ниже создается пользовательский тип, предназначенный для хранения инфор­мации относительно компьютерной системы:

' Объявление в разделе Описания

Private Type SystemInfo

CPU As Variant

Memory As Long

Disk As Long

VideoColor As Integer

Cena As Currency

  MadeDate As Variant

End Type

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

Dim MySystem As SystemInfo, YourSystem As SystemInfo

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

Процедура /  модуль Можно создать пользо­вательский тип как...   Переменные пользовательского  типа могут быть объявлены...
Процедуры Нельзя Только локально
Стандартные модули Private или Public Private или Public
Модули форм и отчетов Только Private Только Private
Модули классов Только Private Только Private

Присвоение и получение значений. Присвоение и отбор значений из элементов таких переменных выполняется аналогично установке и получению значений свойств объектов:

MySystem.CPU = "485"

 If MySystem.MadeDate < #1/1/95# Then

Одну переменную можно также присвоить другой, если обе они — одного пользовательского типа. При этом значения всех элементов одной переменной присваиваются соответствую­щим элементам другой переменной.

YourSystem = MySystem

Пользовательские типы, содержащие массивы. Пользовательский тип может содержать обычный массив (фиксированного размера). На­пример:

Type SystemInfo

CPU As Variant

Memory As Long

DiskDrives (5) As String ' Массив фиксированного размера

VideoColor As Integer

Cena As Currency

MadeDate As Variant

End Type

Он может также содержать динамический массив:

Type SystemInfo

CPU As Variant

Memory As Long

DiskDrivesO As String ' Динамический массив

VideoColor As Integer

Cena As Currency

MadeDate As Variant

 End Type

Обращение к значениям массива внутри пользовательского типа выполняется аналогично обращению к свойству объекта:

Dim MySystem As SystemInfo

ReDim MySystem.DiskDrives (3)

MySystem.DiskDrives(0) = 1.44 MB"

Можно также объявить массив пользовательских типов:

Dim AllSystems(100) As SystemInfo

Следуя тем же правилам, можно обратиться к компонентам такой структуры данных:

AllSystems(5).CPU = "485DX"

AllSystems(5).DiskDrives(2) = "530M SCSI"

Передача пользовательских типов в процедуры.Переменные пользовательского типа можно использовать в качестве параметров и значе­ний процедур — можно либо возвращать пользовательские типы из функций, либо переда­вать переменную пользовательского типа в процедуру как параметр. Пользовательские типы всегда передаются по ссылке, так что процедура может изменять параметр и возвра­щать его в вызывающую процедуру, как иллюстрируется в следующем примере:

Sub FillSystem (System1 As SystemInfo)

Sysiem1.CPU = ПолеПроцессор.Text

System1.Memory = ПолеПамять.Text

Sysiem1.Cena = ПолеЦена.Text

System1.MadeDate = Now

End Sub

Если требуется передать пользовательский тип в модуле класса или формы, процедура должна быть private.

Пользовательские типы, содержащие объекты. Пользовательские типы могут также содержать объекты:

Private Type SchetVvod

frmInput as Form

dbSchet as Database

End Type

Вложение структур данных.С помощью вложения структур можно организовывать иерархии данных. Пользовательские типы могут содержать другие пользовательские типы. Чтобы текст кода был более читабельным и простым в отладке, нужно стараться весь код, который определяет пользовательские типы данных, размещать в одном модуле.





Поделиться с друзьями:


Дата добавления: 2018-10-14; Мы поможем в написании ваших работ!; просмотров: 284 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

3093 - | 2895 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.