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


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

Для назначения объекта переменной объекта используется обычная инструкция назначения. Вы можете назначить выражение объекта или ключевое слово 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. Те, чьи объявления включают инициализацию, повторно инициализированы в значения, указанные при выполнении инструкций объявления.

Вы можете включить инициализацию в объявление с помощью новой ключевое слово. Следующие операторы объявления объявляют переменные 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 выступает в качестве переменной объекта, ссылающейся на текущий экземпляр. Если процедура не является общей, она может использовать Me ключевое слово для получения указателя на текущий экземпляр. Общие процедуры не могут быть связаны с определенным экземпляром класса.

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

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

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

addStandardText(Me)

См. также