Шаг 63 - Инструкция Set

Присваивает ссылку на объект переменной или свойству.

Set объектнаяПеременная = {[New] объектноеВыражение | Nothing}

Параметры
объектнаяПеременная
Обязательный. Имя переменной или свойства, удовлетворяющее стандартным правилам именования переменных.
New
Необязательный. Ключевое слово New обычно используется при описании, чтобы включить возможность неявного создания нового экземпляра объекта. Ключевое слово New в инструкции Set задает создание нового экземпляра класса. Если объектнаяПеременная содержит ссылку на объект, эта ссылка освобождается при новом присвоении. Не допускается использование ключевого слова New для создания новых экземпляров любого внутреннего типа данных и для создания зависимых объектов.
объектноеВыражение
Обязательный. Выражение, состоящее из имени объекта, другой описанной переменной того же объектного типа или функции или метода, которые возвращают объект того же объектного типа.
Nothing
Необязательный. Разрывает связь объектнойПеременной с каким-либо определенным объектом. При этом объектнаяПеременная получает значение Nothing, освобождающее все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка, если никакие другие переменные также не содержат на него ссылок.

Замечания
ОбъектнаяПеременная должна иметь объектный тип, соответствующий объекту, который будет ей присвоен.
Инструкции Dim, Private, Public, ReDim и Static описывают только переменную, которая ссылается на объект. Ссылка на реальный объект не возникает до присвоения определенного объекта в инструкции Set.
В следующем примере показано, как инструкция Dim используется для описания массива с типом Form1. Реально не существует ни одного экземпляра объекта Form1. Затем с помощью инструкции Set ссылка на новый экземпляр объекта Form1 присваивается переменной myChildForms. Такая программа позволяет создать дочерние формы в многооконном приложении (MDI).

Dim myChildForms(1 to 4) As Form1
Set myChildForms(1) = New Form1
Set myChildForms(2) = New Form1
Set myChildForms(3) = New Form1
Set myChildForms(4) = New Form1

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

Пример
В данном примере инструкция Set используется для присвоения переменным ссылок на объект. Предполагается, что YourObject является допустимым объектом, обладающим свойством Text.

Dim YourObject, MyObject, MyStr
Set MyObject = YourObject		' Присваивает ссылку на объект.
' MyObject и YourObject ссылаются на один и тот же объект.
YourObject.Text = "Всем привет"		' Инициализирует свойство.
MyStr = MyObject.Text			' Возвращает "Всем привет".

' Разрыв связи: MyObject больше не ссылается на YourObject.
Set MyObject = Nothing			' Освобождает объект.

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.