Freigeben über


Vorgehensweise: Steuern der Verfügbarkeit einer Variablen (Visual Basic)

Sie steuern die Verfügbarkeit einer Variablen, indem Sie die Zugriffsstufe angeben. Die Zugriffsebene bestimmt, welcher Code über die Berechtigung zum Lesen oder Schreiben in die Variable verfügt.

  • Membervariablen (definiert auf Modulebene und außerhalb einer Prozedur) standardmäßig für den öffentlichen Zugriff, was bedeutet, dass jeder Code, der sie sehen kann, darauf zugreifen kann. Sie können dies ändern, indem Sie einen Zugriffsmodifizierer angeben.

  • Lokale Variablen (definiert in einer Prozedur) haben nominal öffentlichen Zugriff, obwohl nur Code innerhalb ihrer Prozedur darauf zugreifen kann. Sie können die Zugriffsebene einer lokalen Variablen nicht ändern, aber Sie können die Zugriffsebene der Prozedur ändern, die sie enthält.

Weitere Informationen finden Sie unter Access-Ebenen in Visual Basic.

Privater und öffentlicher Zugriff

So können Sie eine Variable nur innerhalb des Moduls, der Klasse oder der Struktur zugänglich machen

  1. Platzieren Sie die Dim-Anweisung für die 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.

    Sie können die Variable von überall innerhalb des Moduls, der Klasse oder der Struktur lesen oder schreiben, aber nicht von außerhalb.

So machen Sie eine Variable über jeden Code zugänglich, der sie sehen kann

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

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

    Sie können die Variable aus jedem Code lesen oder schreiben, der mit Ihrer Assembly interagiert.

-oder-

  1. Platzieren Sie für eine lokale Variable die Anweisung für die Dim Variable innerhalb einer Prozedur.

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

    Sie können die Variable von überall innerhalb der Prozedur lesen oder schreiben, aber nicht von außerhalb.

Geschützter und Freundzugriff

Sie können die Zugriffsebene einer Variablen auf ihre Klasse und alle abgeleiteten Klassen oder auf die Assembly beschränken. Sie können auch die Vereinigung dieser Einschränkungen angeben, die den Zugriff von Code in einer abgeleiteten Klasse oder an einer anderen Stelle in derselben Assembly ermöglicht. Sie geben diese Vereinigung an, indem Sie die ProtectedFriend Schlüsselwörter in derselben Deklaration kombinieren.

So machen Sie eine Variable nur innerhalb ihrer Klasse und aller abgeleiteten Klassen zugänglich

  1. Platzieren Sie die Anweisung für die Dim Variable innerhalb einer Klasse, aber außerhalb einer Prozedur.

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

    Sie können die Variable von überall innerhalb der Klasse aus lesen oder schreiben sowie von einer beliebigen klasse, die daraus abgeleitet wurde, aber nicht von außerhalb einer Klasse in der Ableitungskette.

So können Sie eine Variable nur innerhalb derselben Assembly zugänglich machen

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

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

    Sie können die Variable von überall aus innerhalb des Moduls, der Klasse oder der Struktur sowie aus einem beliebigen Code in derselben Assembly lesen oder schreiben, aber nicht von außerhalb der Assembly.

Beispiel

Das folgende Beispiel zeigt Deklarationen von Variablen mit Public, , Protected, Friend, Protected Friendund Private Zugriffsebenen. Beachten Sie, dass Sie das Schlüsselwort nicht einschließen Dim müssen, wenn die Dim Anweisung eine Zugriffsstufe angibt.

Public Class classForEverybody  
Protected Class classForMyHeirs  
Friend stringForThisProject As String  
Protected Friend stringForProjectAndHeirs As String  
Private numberForMeOnly As Integer  

.NET Framework-Sicherheit

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

Siehe auch