Zugriffsebenen in Visual Basic

Die Zugriffsebene eines deklarierten Elements gibt an, welche Zugriffsmöglichkeiten für das Element gelten, d. h. welchem Code es gestattet ist, das Element zu lesen oder Daten in das Element zu schreiben. Dies wird nicht nur durch die Deklaration des Elements selbst bestimmt, sondern auch durch die Zugriffsebene des Elementcontainers. Code, der nicht auf ein Containerelement zugreifen kann, kann auch nicht auf darin enthaltene Elemente zugreifen, selbst dann nicht, wenn diese Elemente als Public deklariert sind. Auf eine Public-Variable in einer Private-Struktur kann beispielsweise von innerhalb der Klasse zugegriffen werden, die die Struktur enthält, jedoch nicht von außerhalb dieser Klasse.

Public

Das Public (Visual Basic)-Schlüsselwort in der Deklarationsanweisung gibt an, dass von Code an beliebiger Stelle innerhalb desselben Projekts, von anderen Projekten, die auf dieses Projekt verweisen, und von einer aus diesem Projekt erstellten Assembly aus auf die Elemente zugegriffen werden kann. Im folgenden Codebeispiel wird eine Public-Beispieldeklaration gezeigt.

Public Class classForEverybody

Sie können Public nur auf Modul-, Schnittstellen- oder Namespaceebene verwenden. Daher können Sie ein öffentliches Element in Quelldateien oder Namespaces bzw. innerhalb von Schnittstellen, Modulen, Klassen oder Strukturen deklarieren, jedoch nicht in Prozeduren.

Protected

Das Protected (Visual Basic)-Schlüsselwort in der Deklarationsanweisung gibt an, dass auf die Elemente nur von derselben Klasse oder von einer von dieser Klasse abgeleiteten Klasse aus zugegriffen werden kann. Im folgenden Codebeispiel wird eine Protected-Beispieldeklaration gezeigt.

Protected Class classForMyHeirs

Sie können Protected nur auf Klassenebene verwenden und nur dann, wenn Sie einen Member einer Klasse deklarieren. Daher können Sie ein geschütztes Element in Klassen deklarieren, nicht jedoch in Quelldateien oder Namespaces bzw. innerhalb von Schnittstellen, Modulen, Strukturen oder Prozeduren.

Friend

Das Friend (Visual Basic)-Schlüsselwort in der Deklarationsanweisung gibt an, dass von innerhalb derselben Assembly auf die Elemente zugegriffen werden kann, nicht jedoch von außerhalb der Assembly. Im folgenden Codebeispiel wird eine Friend-Beispieldeklaration gezeigt.

Friend stringForThisProject As String

Sie können Friend nur auf Modul-, Schnittstellen- oder Namespaceebene verwenden. Daher können Sie Friend-Elemente in Quelldateien oder Namespaces bzw. innerhalb von Schnittstellen, Modulen, Klassen oder Strukturen deklarieren, jedoch nicht in Prozeduren.

Protected Friend

Wenn die Deklarationsanweisung sowohl das Protected-Schlüsselwort als auch das Friend-Schlüsselwort enthält, bedeutet dies, dass auf die Elemente entweder von abgeleiteten Klassen oder von innerhalb derselben Assembly bzw. von beiden aus zugegriffen werden kann. Im folgenden Codebeispiel wird eine Protected Friend-Beispieldeklaration gezeigt.

Protected Friend stringForProjectAndHeirs As String

Sie können Protected Friend nur auf Klassenebene verwenden und nur dann, wenn Sie einen Member einer Klasse deklarieren. Daher können Sie ein geschütztes Friend-Element in Klassen deklarieren, nicht jedoch in Quelldateien oder Namespaces bzw. innerhalb von Schnittstellen, Modulen, Strukturen oder Prozeduren.

Private

Das Private (Visual Basic)-Schlüsselwort in der Deklarationsanweisung gibt an, dass auf die Elemente nur von innerhalb desselben Moduls, derselben Klasse oder derselben Struktur aus zugegriffen werden kann. Im folgenden Codebeispiel wird eine Private-Beispieldeklaration gezeigt.

Private numberForMeOnly As Integer

Private kann nur auf Modulebene verwendet werden. Daher können Sie ein privates Element innerhalb von Modulen, Klassen oder Strukturen deklarieren, nicht jedoch auf der Ebene von Quelldateien oder Namespaces bzw. innerhalb von Schnittstellen oder Prozeduren.

Auf Modulebene entspricht die Dim-Anweisung ohne Zugriffsebenen-Schlüsselwörter einer Private-Deklaration. Die Verwendung des Private-Schlüsselworts wird jedoch empfohlen, um den Code leichter lesbar und verständlicher zu gestalten.

Zugriffsmodifizierer

Die Schlüsselwörter für die Angabe der Zugriffsebene werden als Zugriffsmodifizierer bezeichnet. In der folgenden Tabelle werden die Zugriffsmodifizierer verglichen.

Zugriffsmodifizierer

Gewährte Zugriffsebene

Elemente, die mit dieser Zugriffsebene deklariert werden können

Deklarationskontext, in dem dieser Modifizierer verwendet werden kann

Public

Uneingeschränkt:

Jeder Code, der ein öffentliches Element erkennen kann, kann darauf zugreifen.

Schnittstellen

Module

Klassen

Strukturen

Strukturmember

Prozeduren

Eigenschaften

Membervariablen

Konstanten

Enumerationen

Ereignisse

Externe Deklarationen

Delegaten

Quelldatei

Namespace

Schnittstelle

Modul

Klasse

Struktur

Protected

Abgeleitet:

Code innerhalb der Klasse, in der ein geschütztes Element deklariert wird, oder Code in einer von dieser Klasse abgeleiteten Klasse kann auf das Element zugreifen.

Schnittstellen

Klassen

Strukturen

Prozeduren

Eigenschaften

Membervariablen

Konstanten

Enumerationen

Ereignisse

Externe Deklarationen

Delegaten

Klasse

Friend

Assembly:

Code innerhalb der Assembly, die ein Friend-Element deklariert, kann darauf zugreifen.

Schnittstellen

Module

Klassen

Strukturen

Strukturmember

Prozeduren

Eigenschaften

Membervariablen

Konstanten

Enumerationen

Ereignisse

Externe Deklarationen

Delegaten

Quelldatei

Namespace

Schnittstelle

Modul

Klasse

Struktur

Protected Friend

Union von Protected und Friend:

Code innerhalb derselben Klasse oder Assembly wie ein geschütztes Friend-Element oder Code innerhalb einer von der Elementklasse abgeleiteten Klasse kann darauf zugreifen.

Schnittstellen

Klassen

Strukturen

Prozeduren

Eigenschaften

Membervariablen

Konstanten

Enumerationen

Ereignisse

Externe Deklarationen

Delegaten

Klasse

Private

Deklarationskontext:

Code innerhalb des Typs, der ein privates Element deklariert, einschließlich Code innerhalb von enthaltenen Typen kann auf das Element zugreifen.

Schnittstellen

Klassen

Strukturen

Strukturmember

Prozeduren

Eigenschaften

Membervariablen

Konstanten

Enumerationen

Ereignisse

Externe Deklarationen

Delegaten

Modul

Klasse

Struktur

Siehe auch

Aufgaben

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

Referenz

Dim-Anweisung (Visual Basic)

Static (Visual Basic)

Konzepte

Namen deklarierter Elemente (Visual Basic)

Merkmale deklarierter Elemente (Visual Basic)

Lebensdauer in Visual Basic

Gültigkeitsbereich in Visual Basic

Variablen in Visual Basic

Variablendeklaration in Visual Basic

Weitere Ressourcen

Verweise auf deklarierte Elemente (Visual Basic)