Определяемые пользователем типы
 
Пользовательские типы.

Обзор

Пользовательские типы - это специальные виды переменных, которые могут быть созданы программистом. Пользовательский тип (UDT) на самом деле просто контейнер, который содержит кучу других переменных. Он такой же как массив, но в отличие от массивов пользовательские типы могут содержать различные типы переменных (в то время как массивы всегда имеют много переменных одного типа). На самом деле, типы могут даже иметь процедуры внутри себя!

Элементы

Различные переменные и/или процедуры, хранящиеся внутри пользовательского типа, называются «элементами». Элементы могут быть переменные практически любого типа, в том числе числовые типы, строки, указатели, перечисления и даже массивы (единственным исключением являются массивы переменной длины, объявленных с помощью ReDim, которые не могут быть использованы в определяемых пользователем типах из-за того, как они используются внутри ). Переменные в определяемых пользователем типах создаются так же, как создаются обычные переменные, за исключением того, что ключевое слово Dim не является обязательным. Элементы UDT доступны через оператор . , так, например, если вы создали переменную с именем someVar в UDT , вы получите к ней доступ через имя объекта пользовательского типа , сопровождаемое ". someVar" . Вот пример:

'Определить пользовательский тип, называемый MyType, с элементом someVar типа Integer
Type myType
  As Integer someVar
End Type

'Создать переменную этого типа
Dim myUDT As myType

'Установите элементу someVar значение 23, а затем отобразить его содержимое на экране
myUDT.someVar = 23
Print myUDT.someVar


Обратите внимание, что Type...End Type на самом деле не создает переменную этого типа, он определяет только то, что переменные этого типа содержатся в нем. Вы должны создать переменную этого типа, чтобы реально использовать его переменные!

UDT указатели

UDT Указатели, как следует из названия, указатели на определяемыхе пользователем типы. Они создаются как обычные указатели, но есть особый способ их использования. Чтобы получить доступ к элементам пользовательcкого типа, на который указывает указатель, вам нужно использовать Оператор ->. Например, если myUDTPtr является указателем на определяемый пользователем тип, который имеет элемент someVar, вы сможете получить доступ к элементу так: myUDTPtr-> someVar.
Запись myUDTPtr-> someVar является более удобным сокращением для такой записи: *(myUDTPtr).someVar.

Type rect
    x As Integer
    y As Integer
End Type

Dim r As rect
Dim rp As rect Pointer = @r

rp->x = 4
rp->y = 2

Print "x = " & rp->x & ", y = " & rp->y
Sleep



См. также