Gewusst wie: Steuern des Gültigkeitsbereichs einer Variablen (Visual Basic)
Normalerweise befindet sich eine Variable in der Region, in der Sie sie deklarieren, durchgehend im Bereich oder ist als Verweis sichtbar. In einigen Fällen kann die Zugriffsebene der Variablen ihren Bereich beeinflussen.
Weitere Informationen finden Sie unter Scope in Visual Basic.
Bereich auf Block- oder Prozedurebene
So machen Sie eine Variable nur innerhalb eines Blocks sichtbar
Platzieren Sie die Dim-Anweisung für die Variable zwischen den initiierenden und beendenden Deklarationsanweisungen dieses Blocks, z. B. zwischen den
For
- undNext
-Anweisungen einerFor
-Schleife.Sie können nur von innerhalb des Blocks auf die Variable verweisen.
So machen Sie eine Variable nur innerhalb einer Prozedur sichtbar
Platzieren Sie die
Dim
-Anweisung für die Variable innerhalb der Prozedur, aber außerhalb eines Blocks (z. B.With
...End With
-Block).Sie können nur von innerhalb der Prozedur auf die Variable verweisen, sowie von innerhalb eines beliebigen Blocks, der in der Prozedur enthalten ist.
Bereich auf Modul- oder Namespaceebene
Der Einfachheit halber gilt die Einzelbegriffsmodulebene gleichermaßen für Module, Klassen und Strukturen. Die Zugriffsebene einer Variablen auf Modulebene bestimmt ihren Bereich. Der Namespace, der das Modul, die Klasse oder die Struktur enthält, wirkt sich auch auf den Bereich aus.
So machen Sie eine Variable in einem Modul, einer Klasse oder einer Struktur sichtbar
Platzieren Sie die
Dim
-Anweisung für die Variable innerhalb des Moduls, der Klasse oder der Struktur, aber außerhalb einer Prozedur.Schließen Sie das Private-Schlüsselwort in die
Dim
-Anweisung ein.Sie können von überall innerhalb des Moduls, der Klasse oder der Struktur auf die Variable verweisen, aber nicht von außen.
So machen Sie eine Variable in einem Namespace sichtbar
Platzieren Sie die
Dim
-Anweisung für die Variable innerhalb des Moduls, der Klasse oder der Struktur, aber außerhalb einer Prozedur.Schließen Sie das Friend- oder Public-Schlüsselwort in die
Dim
-Anweisung ein.Sie können auf die Variable von einer beliebigen Stelle innerhalb des Namespace verweisen, der das Modul, die Klasse oder die Struktur enthält.
Beispiel
Im folgenden Beispiel wird eine Variable auf Modulebene deklariert und ihre Sichtbarkeit auf Code innerhalb des Moduls beschränkt.
Module demonstrateScope
Private strMsg As String
Sub initializePrivateVariable()
strMsg = "This variable cannot be used outside this module."
End Sub
Sub usePrivateVariable()
MsgBox(strMsg)
End Sub
End Module
Im vorherigen Beispiel können alle im Modul demonstrateScope
definierten Prozeduren auf die String
-Variable strMsg
verweisen. Wenn die strMsg
-Prozedur aufgerufen wird, wird der Inhalt der Zeichenfolgenvariablen usePrivateVariable
in einem Dialogfeld angezeigt.
Mit der folgenden Änderung am vorherigen Beispiel kann auf die Zeichenfolgenvariable strMsg
durch Code an einer beliebigen Stelle im Namespace ihrer Deklaration verwiesen werden.
Public strMsg As String
Stabile Programmierung
Je schmaler der Bereich einer Variablen ist, desto weniger Möglichkeiten haben Sie, anstelle einer anderen Variablen mit dem gleichen Namen versehentlich auf sie zu verweisen. Sie können auch Probleme beim Verweisabgleich minimieren.
.NET Framework-Sicherheit
Je schmaler der Bereich einer Variablen ist, desto geringer ist die Wahrscheinlichkeit, dass böswilliger Code sie nicht ordnungsgemäß verwendet.