Freigeben über


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 Nothinginitialisiert. 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)

Siehe auch