Поделиться через


Присваивание объектных переменных

Обновлен: Ноябрь 2007

Для присвоения объекта переменной используется обычный оператор присваивания. Можно присвоить объектное выражение или ключевое слово Nothing, как показано в следующем примере.

Dim thisObject As Object
' The following statement assigns an object reference.
thisObject = Form1
' The following statement discontinues association with any object.
thisObject = Nothing

Nothing означает, что ни один объект не присвоен этой переменной в данный момент.

Инициализация

При запуске кода объектные переменные инициализируются значением Nothing. Те, чьи объявления содержат инициализацию, повторно инициализируются значениями, указанными при выполнении инструкций объявления.

Можно включить инициализацию в объявление с помощью ключевого слова New. Приведенные ниже операторы объявления объявляют переменные объекта testUri и ver и присваивают им определенные объекты. Каждый использует один из перегруженных конструкторов соответствующего класса для инициализации объекта.

Dim testUri As New System.Uri("https://www.microsoft.com")
Dim ver As New System.Version(6, 1, 0)

Отсоединение

Задание для переменной объекта значения Nothing разрывает связь переменной с конкретным объектом. Это предотвращает случайное изменение объекта при изменении переменной. Это также позволяет проверить, содержит ли переменная ссылку на допустимый объект, как показано в следующем примере.

If otherObject IsNot Nothing Then
    ' otherObject refers to a valid object, so your code can use it.
End If

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

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

Текущий экземпляр

Текущим экземпляром объекта называется экземпляр, в котором выполняется код в данный момент времени. Поскольку весь код выполняется внутри процедуры, текущим экземпляром является тот, в котором вызвана процедура.

Ключевое слово Me выполняет функции переменной объекта, ссылаясь на текущий экземпляр. Если процедура не является Shared (Visual Basic), она может использовать ключевое слово Me для получения указателя на текущий экземпляр. Общие процедуры не могут быть связаны с определенным экземпляром класса.

Использование Me особенно удобно для передачи текущего экземпляра процедуре другого модуля. Например, пусть имеется множество XML-документов и во все эти документы требуется добавить некоторый стандартный текст. В следующем примере определяется процедура для этого.

Sub addStandardText(XmlDoc As System.Xml.XmlDocument)
    XmlDoc.CreateTextNode("This text goes into every XML document.")
End Sub

Каждый объект XML-документа может затем вызвать процедуру и передать свой текущий экземпляр в качестве аргумента. Это показано в приведенном ниже примере.

addStandardText(Me)

См. также

Задачи

Практическое руководство. Объявление объектной переменной в Visual Basic и назначение ей объекта

Практическое руководство. Как сделать так, чтобы объектная переменная не указывала ни на какой экземпляр

Основные понятия

Объектные переменные в Visual Basic

Объявление переменных объектов

Значения объектных переменных