Share via


Implizite und explizite Deklaration (Visual Basic)

Standardmäßig erzwingt der Visual Basic-Compiler die explizite Deklaration, die das Deklarieren von Variablen vor ihrer Verwendung erfordert. Sie können diese Anforderung entfernen und die implizite Deklaration zulassen.

In Visual Basic steht ein Schalter zur Verfügung, über den Sie die explizite Deklaration steuern können. Standardmäßig ist dieser Schalter auf On eingestellt, d. h. der Compiler erzwingt die explizite Deklaration. Wenn Sie diesen Schalter auf Off setzen, können Sie Variablen verwenden, ohne sie zu deklarieren.

Expliziter Deklarationsschalter. Sie können die explizite Deklaration wie folgt auf On oder Off festlegen:

  • Legen Sie in der integrierten Entwicklungsumgebung (IDE) die entsprechende Projekteigenschaft fest. Klicken Sie im Menü Projekt auf die Option <Projektname> Eigenschaften, und wählen Sie dort die Registerkarte Kompilieren aus. Sie können die Standardwerte für Option Explicit, Option Strict und Option Compare festlegen.

  • Geben Sie die /optionexplicit-Befehlszeilen-Compileroption an.

  • Fügen Sie am Anfang des Codes die Option Explicit-Anweisung (Visual Basic) ein.

Wenn Sie die Option Explicit-Anweisung verwenden, überschreibt diese Einstellung sowohl die eingestellte Projekteigenschaft als auch die Compileroptionen. Dies gilt jedoch nur für die Quellcodedatei, in der die Anweisung vorhanden ist.

Leistungsvorteil. Wenn Sie Option Explicit auf On setzen, hat dies den Vorteil, dass die Typherleitung zur Kompilierungszeit durchgeführt wird und nicht zur Laufzeit. Dies führt zu einer Leistungssteigerung.

Implizite Deklaration

Wenn Sie Option Explicit auf Off setzen, können Sie eine Variable implizit deklarieren, indem Sie sie einfach im Code verwenden. Der Compiler weist allen implizit deklarierten Variablen den Object-Datentyp zu. Die Anwendung ist jedoch effizienter, wenn Sie alle Variablen explizit deklarieren und einen bestimmten Datentyp für sie festlegen. Dadurch verringern Sie die Wahrscheinlichkeit des Auftretens von Fehlern aufgrund von Namenskonflikten sowie Rechtschreibfehler. Darüber hinaus können vom Compiler potenzielle Laufzeitfehler, z. B. das Zuweisen von Integer zu Short, festgestellt werden.

Potenzielle Fehler

Unbeabsichtigte neue Variablen

Sie können eine Prozedur schreiben, in der Sie keine lokale Variable deklarieren. Dies wird anhand des folgenden Beispiels veranschaulicht:

Function safeSqrt(num)
' Make sure num is positive for square root.
    tempVal = Math.Abs(num)
    Return Math.Sqrt(tempVal)
End Function

Visual Basic erstellt automatisch tempVal als lokale Variable, die Sie so verwenden können, als hätten Sie sie explizit deklariert. Dies ist zwar bequem, kann jedoch auch kleinere Fehler im Code verursachen, wenn Sie z. B. den Namen einer Variablen falsch schreiben. Angenommen, Sie hätten die Prozedur im vorigen Beispiel wie folgt eingegeben:

Function safeSqrt(num)
' Make sure num is positive for square root.
    tempVal = Math.Abs(num)
    Return Math.Sqrt(temVal)
End Function

Auf den ersten Blick sehen beide Codebeispiele identisch aus. Da jedoch die tempVal-Variable als Argument für Sqrt falsch geschrieben ist, erstellt der Compiler eine zusätzliche lokale Variable mit der Bezeichnung temVal, der nie ein Wert zugewiesen wird, wodurch die Funktion immer 0 (null) zurückgibt.

Unbeabsichtigter Verweis auf vorhandene Elemente

Wenn Visual Basic einen neuen Namen findet, ist es nicht möglich festzustellen, ob Sie beabsichtigten, eine neue Variable implizit zu deklarieren, oder ob Sie den Namen einer bereits vorhandenen Variablen falsch geschrieben haben. Deshalb wird versucht, eine neue Variable mit diesem Namen zu erstellen. Eventuell ist bereits eine Variable oder ein anderes Programmierelement mit diesem Namen definiert. In diesem Fall würde diese Definition ungewollt im Code verwendet werden.

Probleme mit falsch geschriebenen Variablen können Sie vermeiden, indem Sie die explizite Deklaration verwenden.

Explizite Deklaration

Wenn für die Quelldatei mit der safeSqrt-Prozedur aus dem vorangegangenen Beispiel die explizite Deklaration aktiviert gewesen wäre, hätte Visual Basic die Variablen tempVal und temVal als undeklariert erkannt und in beiden Fällen einen Fehler ausgegeben. Anschließend würden Sie tempVal explizit deklarieren. Dies wird anhand des folgenden Beispiels veranschaulicht:

Function safeSqrt(ByVal num As Double) As Double
' Make sure num is positive for square root.
    Dim tempVal As Double = Math.Abs(num)
    Return Math.Sqrt(temVal)
End Function

Mit dem überarbeiteten Code fällt Ihnen der Irrtum sofort auf, da Visual Basic für die falsch geschriebene Variable temVal eine Fehlermeldung ausgibt. Da sich Fehler dieser Art mit der expliziten Deklaration leicht feststellen lassen, sollten Sie diese für den gesamten Code verwenden.

Tipp

Die Option Explicit-Anweisung arbeitet dateiweise. Sie muss am Beginn jeder Quellcodedatei stehen, in der Sie das Erzwingen der expliziten Variablendeklaration steuern möchten.

Siehe auch

Aufgaben

Gewusst wie: Ändern von Projekteigenschaften und Konfigurationseinstellungen

Referenz

Datentyp: Zusammenfassung (Visual Basic)

Funktionen für die Typkonvertierung (Visual Basic)

Konzepte

Typenloses Programmieren in Visual Basic

Typüberprüfung in Visual Basic

Object als universeller Datentyp (Visual Basic)

Effiziente Verwendung von Datentypen (Visual Basic)

Variablen in Visual Basic

Benennungskonventionen in Visual Basic