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#.