Zugriffsebenen (C#-Referenz)

Verwenden Sie die Zugriffsmodifizierer public, protected, internal oder private, um eine der folgenden deklarierten Zugriffsebenen für Member anzugeben.

Deklarierter Zugriff Bedeutung
public Der Zugriff ist nicht beschränkt.
protected Der Zugriff ist auf die enthaltende Klasse oder auf Typen beschränkt, die von der enthaltenden Klasse abgeleitet sind.
internal Der Zugriff ist auf die aktuelle Assembly beschränkt.
protected internal Der Zugriff ist auf die aktuelle Assembly oder auf Typen beschränkt, die von der enthaltenden Klasse abgeleitet sind.
private Der Zugriff ist auf die enthaltende Klasse beschränkt.
private protected Der Zugriff ist auf die enthaltende Klasse oder auf Typen beschränkt, die von der enthaltenden Klasse innerhalb der aktuellen Assembly abgeleitet sind.

Es ist nur ein Zugriffsmodifizierer für einen Member oder Typ zulässig, außer wenn Sie die protected internal- oder private protected-Kombination verwenden.

Zugriffsmodifizierer sind bei Namespaces nicht zulässig. Namespaces haben uneingeschränkten Zugriff.

Abhängig vom Kontext einer Memberdeklaration sind nur bestimmte deklarierte Zugriffe zulässig. Wenn in einer Memberdeklaration kein Zugriffsmodifizierer angegeben ist, wird ein Standardzugriff verwendet.

Typen der obersten Ebene, die nicht in anderen Typen geschachtelt sind, können nur Zugriff der Art internal oder public haben. Der Standardzugriff für diese Typen ist internal.

Geschachtelte Typen, die Member von anderen Typen sind, können deklarierte Zugriffe haben, wie in der folgenden Tabelle angegeben.

Member von Standard-Memberzugriff Zulässiger deklarierter Zugriffstyp des Members
enum public Keiner
class private public

protected

internal

private

protected internal

private protected
interface public public

protected

internal

private*

protected internal

private protected
struct private public

internal

private

* Ein interface-Member mit private-Zugriff muss über eine Standardimplementierung verfügen.

Hinweis

Wenn eine Klasse oder Struktur mit dem Schlüsselwortmodifizierer record geändert wird, sind dieselben Zugriffsmodifizierer zulässig.
Außerdem bleibt mit dem Modifizierer record die Barrierefreiheit des Standardelements weiterhin private sowohl für die Klasse als auch für die Struktur.

Der Zugriff auf einen geschachtelten Typ hängt von seiner Zugriffsdomäne ab, die sowohl durch den deklarierten Zugriffstyp des Members als auch durch die Zugriffsdomäne des direkt enthaltenden Typs bestimmt wird. Die Zugriffsdomäne eines geschachtelten Typs kann jedoch nicht über die des enthaltenden Typs hinausgehen.

C#-Programmiersprachenspezifikation

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch