Atribuição de variável do objeto (Visual Basic)
Você usa uma instrução de atribuição normal para atribuir um objeto a uma variável de objeto. Você pode atribuir uma expressão de objeto ou a palavra-chave Nothing, como ilustra o exemplo a seguir.
Dim thisObject As Object
' The following statement assigns an object reference.
thisObject = Form1
' The following statement discontinues association with any object.
thisObject = Nothing
Nothing
significa que não há nenhum objeto atribuído atualmente à variável.
Inicialização
Quando o código começa a ser executado, as variáveis de objeto são inicializadas para Nothing
. Aqueles cujas declarações incluem inicialização são reinicializados para os valores especificados quando as instruções de declaração são executadas.
Você pode incluir a inicialização em sua declaração usando a nova palavra-chave. As instruções de declaração a seguir declaram variáveis testUri
de objeto e ver
atribuem objetos específicos a elas. Cada um usa um dos construtores sobrecarregados da classe apropriada para inicializar o objeto.
Dim testUri As New System.Uri("https://www.microsoft.com")
Dim ver As New System.Version(6, 1, 0)
Dissociação
Definir uma variável de objeto para Nothing
descontinuar a associação da variável com qualquer objeto específico. Isso impede que você altere acidentalmente o objeto alterando a variável. Ele também permite testar se a variável de objeto aponta para um objeto válido, como mostra o exemplo a seguir.
If otherObject IsNot Nothing Then
' otherObject refers to a valid object, so your code can use it.
End If
Se o objeto ao qual sua variável se refere estiver em outro aplicativo, este teste não poderá determinar se esse aplicativo terminou ou apenas invalidou o objeto.
Uma variável de objeto com um valor também Nothing
é chamada de referência nula.
Instância atual
A instância atual de um objeto é aquela em que o código está sendo executado no momento. Como todo código é executado dentro de um procedimento, a instância atual é aquela em que o procedimento foi invocado.
A Me
palavra-chave atua como uma variável de objeto que se refere à instância atual. Se um procedimento não for Compartilhado, ele poderá usar a Me
palavra-chave para obter um ponteiro para a instância atual. Os procedimentos compartilhados não podem ser associados a uma instância específica de uma classe.
O uso Me
é particularmente útil para passar a instância atual para um procedimento em outro módulo. Por exemplo, suponha que você tenha vários documentos XML e queira adicionar um texto padrão a todos eles. O exemplo a seguir define um procedimento para fazer isso.
Sub addStandardText(XmlDoc As System.Xml.XmlDocument)
XmlDoc.CreateTextNode("This text goes into every XML document.")
End Sub
Cada objeto de documento XML poderia então chamar o procedimento e passar sua instância atual como um argumento. O exemplo a seguir demonstra isso.
addStandardText(Me)