Freigeben über


Barrierefreiheitsstufen (C#-Referenz)

Verwenden Sie die Zugriffsmodifizierer public, protected, , internaloder private geben Sie eine der folgenden deklarierten Barrierefreiheitsstufen für Member an.

Deklarierte Barrierefreiheit Bedeutung
public Der Zugriff ist nicht eingeschränkt.
protected Access ist auf die von der enthaltenden Klasse abgeleiteten Klassen oder Typen beschränkt.
internal Der Zugriff ist auf die aktuelle Assembly beschränkt.
protected internal Access ist auf die aktuelle Assembly oder Typen beschränkt, die von der enthaltenden Klasse abgeleitet sind.
private Der Zugriff ist auf den enthaltenden Typ beschränkt.
private protected Access ist auf die enthaltende Klasse oder Typen beschränkt, die von der enthaltenden Klasse innerhalb der aktuellen Assembly abgeleitet sind.

Typen der obersten Ebene (nicht geschachtelt) können den Dateimodifizierer verwenden. Der file Modifizierer beschränkt den Zugriff auf Code in derselben Quelldatei. Sie können den file Modifizierer nicht mit jedem Zugriffsmodifizierer kombinieren.

Verwenden Sie nur einen Zugriffsmodifizierer für ein Element oder einen Typ, außer wenn Sie die protected internal Kombinationen verwenden private protected .

Verwenden Sie keine Zugriffsmodifizierer für Namespaces. Namespaces haben uneingeschränkten Zugriff.

Abhängig vom Kontext, in dem eine Memberdeklaration auftritt, sind nur bestimmte deklarierte Zugriffe zulässig. Wenn Sie keinen Zugriffsmodifizierer in einer Memberdeklaration angeben, wird eine Standardmäßige Barrierefreiheit verwendet.

Typen der obersten Ebene, die nicht in anderen Typen geschachtelt sind, können nur über oder public Barrierefreiheit verfügeninternal. Die Standardmäßige Barrierefreiheit für diese Typen lautet internal.

Geschachtelte Typen, die Member anderer Typen sind, können accessibilities wie in der folgenden Tabelle angegeben deklariert haben.

Mitglieder von Standardmäßige Barrierefreiheit von Membern Zulässige Barrierefreiheit des Mitglieds
enum public Nichts
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 Mitglied mit private Barrierefreiheit muss über eine Standardimplementierung verfügen.

Hinweis

Wenn Sie eine Klasse oder Struktur mit dem record Schlüsselwortmodifizierer ändern, verwenden Sie dieselben Zugriffsmodifizierer. Außerdem gilt mit dem record Modifizierer die standardmäßige Barrierefreiheit für Member weiterhin sowohl für die Klasse als auch private für die Struktur.

Die Barrierefreiheit eines geschachtelten Typs hängt von der Barrierefreiheitsdomäne ab, die die deklarierte Barrierefreiheit des Mitglieds und die Barrierefreiheitsdomäne des unmittelbar enthaltenden Typs bestimmen. Die Barrierefreiheitsdomäne eines geschachtelten Typs darf jedoch nicht die domäne des enthaltenden Typs überschreiten.

C#-Sprachspezifikation

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

Siehe auch