Freigeben über


Objektvariablenzuweisung (Visual Basic)

Sie verwenden eine normale Zuweisungsanweisung, um einer Objektvariablen ein Objekt zuzuweisen. Sie können einen Objektausdruck oder das Nothing-Schlüsselwort 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 ausgeführt wird, werden die Objektvariablen initialisiert in Nothing. Deklarationen, die eine Initialisierung enthalten, werden beim Ausführen der Deklarationsanweisungen auf die von Ihnen angegebenen Werte erneut initialisiert.

Sie können eine Initialisierung in Ihrer Deklaration einschließen, indem Sie das Schlüsselwort New 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)

Dissoziation

Indem Sie eine Objektvariable auf Nothing setzen, wird die Zuordnung der Variablen zu einem bestimmten Objekt aufgehoben. Dadurch wird verhindert, dass Sie das Objekt versehentlich ändern, indem Sie die Variable ändern. Außerdem können Sie testen, ob die Objektvariable auf ein gültiges Objekt verweist, wie im folgenden Beispiel gezeigt.

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 die Variable verweist, in einer anderen Anwendung befindet, kann dieser Test nicht ermitteln, ob die Anwendung das Objekt beendet oder nur ungültig hat.

Eine Objektvariable mit einem Wert von Nothing wird auch als Nullverweis bezeichnet.

Aktuelle Instanz

Die aktuelle Instanz eines Objekts ist die Instanz, in der der Code derzeit ausgeführt wird. Da der gesamte Code innerhalb einer Prozedur ausgeführt wird, ist die aktuelle Instanz die Instanz, in der die Prozedur aufgerufen wurde.

Das Me Schlüsselwort fungiert als Objektvariable, die auf die aktuelle Instanz verweist. Wenn eine Prozedur nicht freigegeben ist, kann sie das Me Schlüsselwort verwenden, um einen Zeiger auf die aktuelle Instanz abzurufen. Gemeinsam genutzte Prozeduren können keiner spezifischen Instanz einer Klasse zugeordnet werden.

Die Verwendung Me ist besonders hilfreich, 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 einigen Standardtext zu allen hinzufügen. Im folgenden Beispiel wird eine Prozedur definiert, um dies zu tun.

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

Jedes XML-Dokumentobjekt kann dann die Prozedur aufrufen und die aktuelle Instanz als Argument übergeben. Dies wird im folgenden Beispiel veranschaulicht:

addStandardText(Me)

Siehe auch