Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Zugriffsebene eines deklarierten Elements ist der Umfang der Möglichkeit, darauf zuzugreifen, d. h. welcher Code über die Berechtigung zum Lesen oder Schreiben verfügt. Dies wird nicht nur dadurch bestimmt, wie Sie das Element selbst deklarieren, sondern auch durch die Zugriffsebene des Containers des Elements. Code, der nicht auf ein enthaltenes Element zugreifen kann, kann nicht auf alle enthaltenen Elemente zugreifen, auch nicht auf diejenigen, die als Public
deklariert wurden. Auf eine Public
Variable in einer Private
Struktur kann beispielsweise innerhalb der Klasse zugegriffen werden, die die Struktur enthält, aber nicht von außerhalb dieser Klasse.
Öffentlichkeit
Das Schlüsselwort Public in der Deklarationsanweisung gibt an, dass auf das Element von Code überall im selben Projekt aus zugegriffen werden kann, aus anderen Projekten, die auf das Projekt verweisen, und von jeder Assembly, die aus dem Projekt erstellt wurde. Der folgende Code zeigt eine Beispieldeklaration Public
:
Public Class ClassForEverybody
Sie können nur auf Modul-, Schnittstellen- oder Namespaceebene verwenden Public
. Dies bedeutet, dass Sie ein öffentliches Element auf der Ebene einer Quelldatei oder eines Namespaces oder innerhalb einer Schnittstelle, eines Moduls, einer Klasse oder einer Struktur deklarieren können, jedoch nicht in einer Prozedur.
Geschützt
Das Protected-Schlüsselwort in der Deklarationsanweisung gibt an, dass auf das Element nur innerhalb derselben Klasse oder von einer von dieser Klasse abgeleiteten Klasse zugegriffen werden kann. Der folgende Code zeigt eine Beispieldeklaration Protected
:
Protected Class ClassForMyHeirs
Sie können Protected
nur auf Klassenebene verwenden und nur dann, wenn Sie ein Mitglied einer Klasse deklarieren. Dies bedeutet, dass Sie ein geschütztes Element in einer Klasse deklarieren können, aber nicht auf der Ebene einer Quelldatei oder eines Namespaces oder innerhalb einer Schnittstelle, eines Moduls, einer Struktur oder einer Prozedur.
Freund
Das Friend-Schlüsselwort in der Deklarationsanweisung gibt an, dass auf das Element innerhalb derselben Assembly, aber nicht von außerhalb der Assembly zugegriffen werden kann. Der folgende Code zeigt eine Beispieldeklaration Friend
:
Friend stringForThisProject As String
Sie können nur auf Modul-, Schnittstellen- oder Namespaceebene verwenden Friend
. Dies bedeutet, dass Sie ein Friend-Element auf der Ebene einer Quelldatei oder eines Namespaces oder innerhalb einer Schnittstelle, eines Moduls, einer Klasse oder einer Struktur deklarieren können, jedoch nicht in einer Prozedur.
Geschützter Freund
Die Schlüsselwortkombination "Protected Friend " in der Deklarationsanweisung gibt an, dass auf das Element entweder aus abgeleiteten Klassen oder innerhalb derselben Assembly oder beides zugegriffen werden kann. Der folgende Code zeigt eine Beispieldeklaration Protected Friend
:
Protected Friend stringForProjectAndHeirs As String
Sie können Protected Friend
nur auf Klassenebene verwenden und nur dann, wenn Sie ein Mitglied einer Klasse deklarieren. Dies bedeutet, dass Sie ein geschütztes Friend-Element in einer Klasse deklarieren können, aber nicht auf der Ebene einer Quelldatei oder eines Namespaces oder innerhalb einer Schnittstelle, eines Moduls, einer Struktur oder einer Prozedur.
Privat
Das Schlüsselwort Private in der Deklarationsanweisung gibt an, dass auf das Element nur innerhalb desselben Moduls, derselben Klasse oder Struktur zugegriffen werden kann. Der folgende Code zeigt eine Beispieldeklaration Private
:
Private _numberForMeOnly As Integer
Sie können nur auf Modulebene verwenden Private
. Dies bedeutet, dass Sie ein privates Element innerhalb eines Moduls, einer Klasse oder einer Struktur deklarieren können, jedoch nicht auf der Ebene einer Quelldatei oder eines Namespaces, innerhalb einer Schnittstelle oder in einer Prozedur.
Auf Modulebene entspricht die Dim
Anweisung ohne Schlüsselwörter auf Zugriffsebene einer Private
Deklaration. Möglicherweise möchten Sie jedoch das Private
Schlüsselwort verwenden, um das Lesen und Interpretieren des Codes zu vereinfachen.
Privat geschützt
Die Kombination aus dem Schlüsselwort "Private Protected " in der Deklarationsanweisung gibt an, dass auf das Element nur innerhalb derselben Klasse zugegriffen werden kann, sowie von abgeleiteten Klassen, die in derselben Assembly wie die enthaltende Klasse enthalten sind. Der Private Protected
Zugriffsmodifizierer wird ab Visual Basic 15.5 unterstützt.
Das folgende Beispiel zeigt eine Private Protected
Deklaration:
Private Protected internalValue As Integer
Sie können ein Private Protected
Element nur innerhalb einer Klasse deklarieren. Sie können sie weder innerhalb einer Schnittstelle oder Struktur deklarieren noch auf der Ebene einer Quelldatei oder eines Namespaces, innerhalb einer Schnittstelle oder Struktur oder in einer Prozedur deklarieren.
Der Private Protected
Zugriffsmodifizierer wird von Visual Basic 15.5 und höher unterstützt. Um es zu verwenden, fügen Sie das folgende Element zu Ihrer Visual Basic-Projektdatei (*.vbproj) hinzu. Solange Visual Basic 15.5 oder höher auf Ihrem System installiert ist, können Sie alle Sprachfeatures nutzen, die von der neuesten Version des Visual Basic-Compilers unterstützt werden:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Um den Private Protected
Zugriffsmodifizierer zu verwenden, müssen Sie dem Visual Basic-Projekt (*.vbproj) das folgende Element hinzufügen:
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Weitere Informationen finden Sie unter Festlegen der Visual Basic-Sprachversion.
Zugriffsmodifizierer
Die Schlüsselwörter, die zugriffsebene angeben, werden als Zugriffsmodifizierer bezeichnet. In der folgenden Tabelle werden die Zugriffsmodifizierer verglichen:
Zugriffsmodifizierer | Gewährte Zugriffsebene | Elemente, die Sie mit dieser Zugriffsebene deklarieren können | Deklarationskontext, in dem Sie diesen Modifizierer verwenden können |
---|---|---|---|
Public |
Uneingeschränkt Jeder Code, der ein öffentliches Element sehen kann, kann darauf zugreifen |
Schnittstellen Module Klassen Strukturen Strukturmember Prozeduren Eigenschaften Mitgliedsvariablen Konstanten Enumerationen Ereignisse Externe Deklarationen Delegierte |
Quelldatei Namespace Schnittstelle Modul Klasse Struktur |
Protected |
Abgeleitet: Code in der Klasse, die ein geschütztes Element deklariert, oder eine von ihr abgeleitete Klasse, kann auf das Element zugreifen |
Schnittstellen Klassen Strukturen Prozeduren Eigenschaften Mitgliedsvariablen Konstanten Enumerationen Ereignisse Externe Deklarationen Delegierte |
Klasse |
Friend |
Versammlung: Code in der Assembly, der ein Friend-Element deklariert, kann darauf zugreifen |
Schnittstellen Module Klassen Strukturen Strukturmember Prozeduren Eigenschaften Mitgliedsvariablen Konstanten Enumerationen Ereignisse Externe Deklarationen Delegierte |
Quelldatei Namespace Schnittstelle Modul Klasse Struktur |
Protected
Friend
|
Vereinigung von Protected und Friend :Code in derselben Klasse oder derselben Assembly wie ein geschütztes Friend-Element oder innerhalb einer von der Klasse des Elements abgeleiteten Klasse kann darauf zugreifen. |
Schnittstellen Klassen Strukturen Prozeduren Eigenschaften Mitgliedsvariablen Konstanten Enumerationen Ereignisse Externe Deklarationen Delegierte |
Klasse |
Private |
Deklarationskontext: Code in dem Typ, der ein privates Element deklariert, einschließlich Code in enthaltenen Typen, kann auf das Element zugreifen |
Schnittstellen Klassen Strukturen Strukturmember Prozeduren Eigenschaften Mitgliedsvariablen Konstanten Enumerationen Ereignisse Externe Deklarationen Delegierte |
Modul Klasse Struktur |
Private Protected |
Code in der Klasse, die ein privates geschütztes Element deklariert, oder Code in einer abgeleiteten Klasse, die in derselben Assembly wie die Basklasse gefunden wurde. | Schnittstellen Klassen Strukturen Prozeduren Eigenschaften Mitgliedsvariablen Konstanten Enumerationen Ereignisse Externe Deklarationen Delegierte |
Klasse |