Zuweisen von Objektvariablen (Visual Basic)
Sie verwenden eine normale Zuweisungsanweisung, um einer Objektvariablen ein Objekt zuzuweisen. Sie können einen Objektausdruck oder den Nothing-Schlüsselwort (keyword) zuweisen, wie das folgende Beispiel veranschaulicht.
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 derzeit kein Objekt zugewiesen ist.
Initialisierung
Wenn der Code mit der Ausführung beginnt, werden Ihre Objektvariablen in Nothing
initialisiert. Diejenigen, deren Deklarationen die Initialisierung einschließen, werden in die Werte neu initialisiert, die Sie beim Ausführen der Deklarationsanweisungen angeben.
Sie können die Initialisierung in Ihre Deklaration einschließen, indem Sie die neue Schlüsselwort (keyword) verwenden. Die folgenden Deklarationsanweisungen deklarieren Objektvariablen testUri
und ver
weisen ihnen bestimmte Objekte zu. Jeder verwendet einen der überladenen Konstruktoren der entsprechenden Klasse, um das Objekt zu initialisieren.
Dim testUri As New System.Uri("https://www.microsoft.com")
Dim ver As New System.Version(6, 1, 0)
Abgrenzung
Wenn Sie eine Objektvariable festlegen, um die Zuordnung der Variablen zu einem bestimmten Objekt zu Nothing
beenden. Dadurch wird verhindert, dass Sie versehentlich das Objekt ändern, indem Sie die Variable ändern. Außerdem können Sie testen, ob die Objektvariable auf ein gültiges Objekt verweist, wie das folgende Beispiel zeigt.
If otherObject IsNot Nothing Then
' otherObject refers to a valid object, so your code can use it.
End If
Wenn sich das Objekt, auf das ihre Variable verweist, in einer anderen Anwendung befindet, kann dieser Test nicht feststellen, ob diese Anwendung das Objekt beendet oder nur ungültig gemacht hat.
Eine Objektvariable mit dem Wert von Nothing
wird auch als NULL-Verweis bezeichnet.
Aktuelle Instanz
Die aktuelle instance eines Objekts ist die, in der der Code derzeit ausgeführt wird. Da der gesamte Code innerhalb einer Prozedur ausgeführt wird, ist die aktuelle instance diejenige, in der die Prozedur aufgerufen wurde.
Die Me
Schlüsselwort (keyword) fungiert als Objektvariable, die auf die aktuelle instance verweist. Wenn eine Prozedur nicht freigegeben ist, kann sie den Me
Schlüsselwort (keyword) verwenden, um einen Zeiger auf den aktuellen instance abzurufen. Freigegebene Prozeduren können keinem bestimmten instance einer Klasse zugeordnet werden.
Die Verwendung Me
ist besonders nützlich, um die aktuelle Instanz an eine Prozedur in einem anderen Modul zu übergeben. Angenommen, Sie verfügen über eine Reihe von XML-Dokumenten und möchten ihnen standardtexte hinzufügen. Im folgenden Beispiel wird hierfür eine Prozedur definiert.
Sub addStandardText(XmlDoc As System.Xml.XmlDocument)
XmlDoc.CreateTextNode("This text goes into every XML document.")
End Sub
Jedes XML-Dokumentobjekt könnte dann die Prozedur aufrufen und den aktuellen instance als Argument übergeben. Dies wird im folgenden Beispiel veranschaulicht:
addStandardText(Me)