Dela via


Objektvariabeltilldelning (Visual Basic)

Du använder en normal tilldelningsinstrukitet för att tilldela ett objekt till en objektvariabel. Du kan tilldela ett objektuttryck eller nyckelordet Ingenting , vilket visas i följande exempel.

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

Nothing innebär att det för närvarande inte finns något objekt som har tilldelats variabeln.

Initiering

När koden börjar köras initieras objektvariablerna till Nothing. De vars deklarationer inkluderar initiering initieras på nytt till de värden som du anger när deklarationssatserna körs.

Du kan inkludera initiering i deklarationen med hjälp av nyckelordet Nytt . Följande deklarationsuttryck deklarerar objektvariabler testUri och ver tilldelar specifika objekt till dem. Var och en använder en av de överlagrade konstruktorerna i lämplig klass för att initiera objektet.

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

Avassociation

Om du ställer in en objektvariabel så avbryts Nothing associationen för variabeln med ett visst objekt. Detta hindrar dig från att oavsiktligt ändra objektet genom att ändra variabeln. Du kan också testa om objektvariabeln pekar på ett giltigt objekt, vilket visas i följande exempel.

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

Om objektet som variabeln refererar till finns i ett annat program kan det här testet inte avgöra om programmet har avslutats eller bara ogiltigförklarat objektet.

En objektvariabel med värdet för Nothing kallas även för en null-referens.

Aktuell instans

Den aktuella instansen av ett objekt är den där koden körs för närvarande. Eftersom all kod körs i en procedur är den aktuella instansen den där proceduren anropades.

Nyckelordet Me fungerar som en objektvariabel som refererar till den aktuella instansen. Om en procedur inte delas kan den använda nyckelordet Me för att hämta en pekare till den aktuella instansen. Delade procedurer kan inte associeras med en specifik instans av en klass.

Det är särskilt användbart att använda Me för att skicka den aktuella instansen till en procedur i en annan modul. Anta till exempel att du har ett antal XML-dokument och vill lägga till lite standardtext till dem alla. I följande exempel definieras en procedur för att göra detta.

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

Varje XML-dokumentobjekt kan sedan anropa proceduren och skicka den aktuella instansen som ett argument. I följande exempel visas detta.

addStandardText(Me)

Se även