Zum Hauptinhalt springen

Zugriffsmodifizierer

Zugriffsmodifizierer (Access Modifiers) sind Schlüsselwörter in C#, die die Sichtbarkeit und den Zugriff auf Klassen, Methoden, Felder und andere Mitglieder in Ihrem Code steuern. Sie definieren, wer auf diese Elemente zugreifen darf und wer nicht. In C# gibt es verschiedene Zugriffsmodifizierer:

  1. public: Mitglieder mit diesem Modifizierer sind von überall zugänglich. Sie können sowohl innerhalb als auch außerhalb der Klasse, in der sie definiert sind, verwendet werden.

  2. private: Mitglieder mit diesem Modifizierer sind nur in der Klasse oder dem Kontext zugänglich, in dem sie definiert sind. Sie sind von außen nicht sichtbar oder zugreifbar.

  3. protected: Ähnlich wie "private", aber Mitglieder mit diesem Modifizierer können in abgeleiteten Klassen (Subklassen) verwendet werden. Sie sind nicht von außen sichtbar.

  4. internal: Mitglieder mit diesem Modifizierer sind innerhalb desselben Assemblies (z.B. einer Projektdatei) sichtbar und zugänglich. Sie sind jedoch von außen, d.h., in anderen Assemblies, nicht sichtbar.

  5. protected internal: Kombiniert die Eigenschaften von "protected" und "internal". Die Mitglieder sind innerhalb desselben Assemblies und in abgeleiteten Klassen sichtbar und zugänglich.

  6. private protected: Eine spezielle Kombination von "private" und "protected", die Mitglieder nur innerhalb desselben Assemblies und in abgeleiteten Klassen derselben Assembly sichtbar und zugänglich macht.

Standard-Memberzugriffe

ElementtypStandard-MemberzugriffZulässige deklarierte Zugriffstypen des Members
enumpublicKeiner
classprivatepublic
protected
internal
private
protected internal
private protected
interfacepublicpublic
protected
internal
private*
protected internal
private protected
structprivatepublic
internal
private
  • Beachten Sie, dass in einer Schnittstelle (interface) Mitglieder standardmäßig public sind und Sie keinen Zugriffsmodifizierer verwenden können, um sie als private zu deklarieren. Dies ist auch der Fall bei Schnittstellenmethoden in Klassen, da sie die Schnittstelle implementieren müssen und daher nicht privatisiert werden können.

Kommentare