Freigeben über


Vorgehensweise: Steuern des Gültigkeitsbereichs einer Variablen (Visual Basic)

Normalerweise befindet sich eine Variable im Bereich oder für den Verweis sichtbar in der gesamten Region, in der Sie sie deklarieren. In einigen Fällen kann die Zugriffsebene der Variablen den Umfang beeinflussen.

Weitere Informationen finden Sie unter Scope in Visual Basic.

Gültigkeitsbereich auf Block- oder Prozedurebene

So zeigen Sie eine Variable nur innerhalb eines Blocks an

  • 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 innerhalb des Blocks auf die Variable verweisen.

So zeigen Sie eine Variable nur innerhalb einer Prozedur an

  • Platzieren Sie die Dim Anweisung für die Variable innerhalb der Prozedur, aber außerhalb eines Blocks (z. B. eines With...End With -Blocks).

    Sie können nur innerhalb der Prozedur auf die Variable verweisen, einschließlich innerhalb eines beliebigen Blocks, der in der Prozedur enthalten ist.

Bereich auf Modul- oder Namespaceebene

Der Einfachheit halber gilt der Begriff der Modulebene gleichermaßen für Module, Klassen und Strukturen. Die Zugriffsebene einer Variablen auf Modulebene bestimmt den Bereich. Der Namespace, der das Modul, die Klasse oder die Struktur enthält, beeinflusst auch den Bereich.

So machen Sie eine Variable während eines Moduls, einer Klasse oder einer Struktur sichtbar

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

  2. Schließen Sie das Schlüsselwort Private 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ßerhalb.

So machen Sie eine Variable in einem Namespace sichtbar

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

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

  3. Sie können von überall innerhalb des Namespaces, der das Modul, die Klasse oder die Struktur enthält, auf die Variable verweisen.

Beispiel

Im folgenden Beispiel wird eine Variable auf Modulebene deklariert und die 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 usePrivateVariable Prozedur aufgerufen wird, wird der Inhalt der Zeichenfolgenvariable strMsg in einem Dialogfeld angezeigt.

Mit der folgenden Änderung des vorherigen Beispiels kann die Zeichenfolgenvariable strMsg von Code an einer beliebigen Stelle im Namespace der Deklaration referenziert werden.

Public strMsg As String  

Robuste Programmierung

Je schmaler der Bereich einer Variablen ist, desto weniger Möglichkeiten haben Sie, versehentlich anstelle einer anderen Variablen mit demselben Namen darauf zu verweisen. Sie können auch Probleme mit dem Verweisabgleich minimieren.

.NET Framework-Sicherheit

Je schmaler der Bereich einer Variablen ist, desto kleiner ist die Wahrscheinlichkeit, dass bösartiger Code ihn nicht ordnungsgemäß nutzen kann.

Siehe auch