Zuweisen von Objektvariablen (Visual Basic)
Ein Objekt wird einer Objektvariablen mit einer normalen Zuweisungsanweisung zugewiesen. Sie können einen Objektausdruck oder das Nothing-Schlüsselwort zuweisen, wie im folgenden Beispiel veranschaulicht wird.
Dim thisObject As Object
' The following statement assigns an object reference.
thisObject = Form1
' The following statement discontinues association with any object.
thisObject = Nothing
Nothing bedeutet, dass der Variablen gegenwärtig kein Objekt zugewiesen ist.
Initialisierung
Wenn mit der Ausführung des Codes begonnen wird, werden die Objektvariablen mit Nothing initialisiert. Während der Ausführung der Deklarationsanweisungen werden die Variablen, deren Deklarationen die Initialisierung enthält, mit den angegebenen Werten neu initialisiert.
Sie können unter Verwendung des Schlüsselworts New die Initialisierung in die Deklaration einschließen. Mit den folgenden Deklarationsanweisungen werden die Objektvariablen testUri und ver deklariert und diesen Variablen spezielle Objekte zugewiesen. Zur Initialisierung des Objekts wird jeweils einer der überladenen Konstruktoren der entsprechenden Klasse verwendet.
Dim testUri As New System.Uri("https://www.microsoft.com")
Dim ver As New System.Version(6, 1, 0)
Disassoziation
Wenn eine Objektvariable auf Nothing festgelegt wird, wird die Zuordnung der Variablen zu einem speziellen Objekt beendet. So wird verhindert, dass das Objekt durch eine Variablenänderung versehentlich geändert wird. Außerdem können Sie testen, ob die Objektvariable auf ein gültiges Objekt zeigt; das folgende Beispiel veranschaulicht dies:
If otherObject IsNot Nothing Then
' otherObject refers to a valid object, so your code can use it.
End If
Wenn die Variable auf ein Objekt in einer anderen Anwendung verweist, kann mit diesem Test nicht festgestellt werden, ob die betreffende Anwendung beendet wurde oder ob das Objekt dort lediglich ungültig wurde.
Eine Objektvariable mit dem Wert Nothing wird auch als Nullverweis bezeichnet.
Aktuelle Instanz
Die aktuelle Instanz eines Objekts ist diejenige, in der der Code gegenwärtig ausgeführt wird. Da Code immer innerhalb einer Prozedur ausgeführt wird, handelt es sich bei der aktuellen Instanz um diejenige, in der die Prozedur aufgerufen wurde.
Das Me-Schlüsselwort fungiert als auf die aktuelle Instanz verweisende Objektvariable. Sofern eine Prozedur nicht als Shared (Visual Basic) deklariert wurde, kann sie mithilfe des Me-Schlüsselworts einen Zeiger auf die aktuelle Instanz abrufen. Freigegebene Prozeduren können nicht einzelnen Objektinstanzen zugeordnet werden.
Me ist vor allem bei der Übergabe der aktuellen Instanz an eine Prozedur in einem anderen Modul hilfreich. Nehmen wir beispielsweise an, es sind einige XML-Dokumente vorhanden, und jedem dieser Dokumente soll ein Standardtext hinzugefügt werden. Im folgenden Beispiel wird eine Prozedur definiert, die dies leistet.
Sub addStandardText(XmlDoc As System.Xml.XmlDocument)
XmlDoc.CreateTextNode("This text goes into every XML document.")
End Sub
Daraufhin kann jedes XML-Dokumentobjekt die Prozedur aufrufen und ihr seine aktuelle Instanz mit der folgenden Anweisung als Argument übergeben: Das folgende Beispiel veranschaulicht dies.
addStandardText(Me)
Siehe auch
Aufgaben
Gewusst wie: Entfernen aller Verweise einer Objektvariablen auf Instanzen (Visual Basic)
Konzepte
Objektvariablen in Visual Basic
Deklaration von Objektvariablen (Visual Basic)