Zugriffsmodifikatoren

Definition - Was bedeuten Zugriffsmodifikatoren?

Zugriffsmodifikatoren sind Schlüsselwörter, mit denen die Zugänglichkeit einer Klasse (oder eines Typs) und ihrer Mitglieder angegeben wird. Diese Modifikatoren können aus Code innerhalb oder außerhalb der aktuellen Anwendung verwendet werden.

Zugriffsmodifikatoren in .NET werden verwendet, um die Zugänglichkeit jedes Mitglieds eines Typs aus verschiedenen möglichen Codebereichen zu steuern. Dies kann innerhalb oder außerhalb der aktuellen Baugruppe erfolgen. Eine Assembly stellt eine logische Funktionseinheit dar und besteht aus Typen und Ressourcen, die sich in einer oder mehreren Dateien befinden.

Der Zweck der Verwendung von Zugriffsmodifikatoren besteht darin, eine Kapselung zu implementieren, die die Schnittstelle eines Typs von seiner Implementierung trennt. Daraus lassen sich folgende Vorteile ableiten:

  • Verhinderung des ungültigen Zugriffs von Benutzern auf den internen Datensatz.
  • Bereitstellung von Änderungen an der internen Implementierung der Typen, ohne die Komponenten zu beeinflussen, die sie verwenden.
  • Reduzierung der Komplexität des Systems durch Reduzierung der Abhängigkeiten zwischen Softwarekomponenten.

Technische.me erklärt Access Modifiers

Das .NET Framework bietet eine Option mit fünf Arten von Zugriffsmodifikatoren:

  1. Privatcode innerhalb des Typs kann nur auf die Mitglieder dieses Typs zugreifen, und daher ist die Zugänglichkeit auf den aktuellen Typ beschränkt
  2. Öffentlicher Code von überall in der aktuellen Assembly oder einer anderen Assembly, die darauf verweist, kann auf die Mitglieder des Typs zugreifen und ermöglicht somit den Zugriff von überall
  3. Geschützt - Code innerhalb des Typs oder seiner abgeleiteten Klassen kann auf die Mitglieder des Typs zugreifen, und daher ist die Zugänglichkeit auf den aktuellen Typ und die abgeleiteten Klassen beschränkt
  4. Interner Code in der aktuellen Assembly, jedoch nicht von einer anderen Assembly, kann auf die Mitglieder des Typs zugreifen. Daher ist die Zugänglichkeit auf die aktuelle Assembly beschränkt
  5. Geschützter interner Code in der aktuellen Assembly kann auf die Mitglieder des Typs und auch über die Assembly zugreifen, die darauf verweist. Daher erfolgt die Zugänglichkeit von abgeleiteten Klassen in der aktuellen Assembly und muss über eine Instanz des abgeleiteten Klassentyps in der Assembly erfolgen, die darauf verweist

Für die Zugriffsmodifikatoren gelten verschiedene Regeln:

  • Wenn für Typmitglieder kein Zugriffsmodifikator angegeben ist, ist die Standardzugriffsebene privat und intern.
  • Für Namespaces sind keine Zugriffsmodifikatoren zulässig, da sie öffentlich sind.
  • Die verschachtelten Klassen und Strukturelemente, die innerhalb eines Typs deklariert sind, sind für die enthaltende Klasse standardmäßig privat.
  • Strukturmitglieder können nicht als geschützt deklariert werden, da sie keine Vererbung unterstützen.
  • Destruktoren können keine Zugriffsmodifikatoren haben.
  • Der abgeleitete Typ kann nicht besser zugänglich sein als sein Basistyp.
  • Das Mitglied eines enthaltenden Typs sollte eine geringere Zugänglichkeit haben als das seines enthaltenden Typs. Dies kann anhand eines Beispiels veranschaulicht werden: Eine öffentliche Methode in einem enthaltenden Typ kann nicht "A" als Parameter haben, wenn Typ A nicht öffentlich sichtbar ist.
  • Schnittstellen werden als öffentlich und intern deklariert und können keine anderen Zugriffsmodifikatoren haben, da Schnittstellen hauptsächlich für den Zugriff von Klassen verwendet werden, um daraus abzuleiten.
  • Zugriffsmodifikatoren werden nicht nur für Klassenmitglieder verwendet, sondern auch für andere Codekonstrukte mit derselben Absicht.