Assegnazione di variabili oggetto (Visual Basic)

Usare un'istruzione di assegnazione normale per assegnare un oggetto a una variabile oggetto. È possibile assegnare un'espressione oggetto o la parola chiave Nothing, come illustrato nell'esempio seguente.

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

Nothing indica che alla variabile non è attualmente assegnato alcun oggetto.

Inizializzazione

Quando viene avviata l'esecuzione del codice, le variabili oggetto vengono inizializzate su Nothing. Quelle le cui dichiarazioni includono l'inizializzazione vengono reinizializzate ai valori specificati quando vengono eseguite le istruzioni di dichiarazione.

È possibile includere l'inizializzazione nella dichiarazione usando la parola chiave New. Le istruzioni di dichiarazione seguenti dichiarano le variabili oggetto testUri e ver e assegnano loro oggetti specifici. Ognuna usa uno dei costruttori di overload della classe appropriata per inizializzare l'oggetto.

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

Dissociazione

L'impostazione di una variabile oggetto su Nothing interrompe l'associazione della variabile a qualsiasi oggetto specifico. Questo impedisce di modificare accidentalmente l'oggetto modificando la variabile. Consente inoltre di verificare se la variabile oggetto punta a un oggetto valido, come illustrato nell'esempio seguente.

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

Se l'oggetto a cui fa riferimento la variabile si trova in un'altra applicazione, questo test non può determinare se l'applicazione è stata terminata o se l'oggetto è stato semplicemente invalidato.

Una variabile oggetto con un valore di Nothing viene chiamata anche riferimento Null.

Istanza corrente

L'istanza corrente di un oggetto è quella in cui è in esecuzione il codice. Poiché tutto il codice viene eseguito all'interno di una routine, l'istanza corrente è quella in cui è stata richiamata la routine.

La parola chiave Me funge da variabile oggetto che fa riferimento all'istanza corrente. Se una routine non è condivisa, può usare la parola chiave Me per ottenere un puntatore all'istanza corrente. Le routine condivise non possono essere associate a un'istanza specifica di una classe.

L'uso di Me è particolarmente utile per passare l'istanza corrente a una routine in un altro modulo. Si supponga, ad esempio, di avere un certo numero di documenti XML e di voler aggiungere testo standard a tutti. Nell'esempio seguente viene definita una routine per eseguire questa operazione.

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

Ogni oggetto documento XML può quindi chiamare la routine e passare la relativa istanza corrente come argomento. L'esempio seguente illustra questa operazione.

addStandardText(Me)

Vedi anche