Freigeben über


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- und Next-Anweisungen einer For-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

  1. Platzieren Sie die Dim-Anweisung für die Variable innerhalb des Moduls, der Klasse oder der Struktur, aber außerhalb einer Prozedur.

  2. Schließen Sie das Private-Schlüsselwort in die Dim-Anweisung ein.

  3. 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

  1. Platzieren Sie die Dim-Anweisung für die Variable innerhalb des Moduls, der Klasse oder der Struktur, aber außerhalb einer Prozedur.

  2. Schließen Sie das Friend- oder Public-Schlüsselwort in die Dim-Anweisung ein.

  3. 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 strMsgverweisen. 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.

Siehe auch