Compartilhar via


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)

Confira também