Присваивание объектных переменных (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)
См. также
- Объектные переменные
- Объявление объектной переменной
- Значения объектных переменных
- Практическое руководство. Объявление переменной объекта и назначение объекта в Visual Basic
- Практическое руководство. Как сделать так, чтобы объектная переменная не указывала ни на какой экземпляр
- Me, My, MyBase и MyClass