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

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

  • Membervariablen (auf Modulebene und außerhalb von Prozeduren definiert) sind standardmäßig auf öffentlichen Zugriff festgelegt, was bedeutet, dass jeglicher Code, für den sie sichtbar sind, auf sie zugreifen kann. Sie können dies ändern, indem Sie einen Zugriffsmodifizierer angeben.

  • lokale Variablen (innerhalb einer Prozedur definiert) bieten nominal öffentlichen Zugriff, obwohl nur Code innerhalb ihrer Prozedur auf sie zugreifen kann. Sie können die Zugriffsebene einer lokalen Variablen nicht ändern, aber Sie können die Zugriffsebene der Prozedur ändern, in der sie enthalten ist.

Weitere Informationen finden Sie unter Zugriffsebenen in Visual Basic.

Privater und öffentlicher Zugriff

Zugänglichmachen einer Variable nur innerhalb ihres Moduls, ihrer Klasse oder ihrer Struktur

  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 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 in sie schreiben, nicht aber von außen.

Zugänglichmachen einer Variable aus beliebigem Code, für den sie sichtbar ist

  1. Wenn es sich um eine Membervariable handelt, platzieren Sie die Dim-Anweisung für die Variable innerhalb eines Moduls, einer Klasse oder einer Struktur, aber außerhalb einer Prozedur.

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

    Zum Lesen oder Schreiben der Variable können Sie jeden Code verwenden, für den Interoperabilität mit Ihrer Assembly besteht.

Oder

  1. Wenn es sich um eine lokale Variable handelt, platzieren Sie die Dim--Anweisung für die Variable innerhalb einer Prozedur.

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

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

Geschützter Zugriff und Friend-Zugriff

Sie können die Zugriffsebene einer Variablen auf ihre Klasse und alle abgeleiteten Klassen oder auf ihre Assembly beschränken. Sie können auch eine Vereinigung dieser Einschränkungen angeben, was den Zugriff von Code in einer abgeleiteten Klasse oder an einer anderen Stelle innerhalb derselben Assembly ermöglicht. Diese Vereinigung geben Sie durch Kombination der Schlüsselwörter Protected und Friend in derselben Deklaration an.

Zugänglichmachen einer Variable nur innerhalb ihrer Klasse und aller abgeleiteten Klassen

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

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

    Sie können die Variable von überall innerhalb der Klasse sowie innerhalb einer beliebigen davon abgeleiteten Klasse lesen oder in sie schreiben, aber nicht von außerhalb einer Klasse in der Ableitungskette.

Zugänglichmachen einer Variable nur innerhalb derselben Assembly

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

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

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

Beispiel

Das folgende Beispiel zeigt Deklarationen von Variablen mit den Zugriffsebenen Public, Protected, Friend, Protected Friend und Private. Beachten Sie Folgendes: Wenn die Dim-Anweisung eine Zugriffsebene angibt, müssen Sie das Schlüsselwort Dim nicht einschließen.

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 geringer ist die Wahrscheinlichkeit, dass schädlicher Code sie ausnutzen kann.

Siehe auch