Poziomy ułatwień dostępu (odwołanie w C#)
Użyj modyfikatorów dostępu, public
, protected
, internal
lub private
, aby określić jeden z następujących zadeklarowanych poziomów ułatwień dostępu dla członków.
Zadeklarowane ułatwienia dostępu | Znaczenie |
---|---|
public |
Dostęp nie jest ograniczony. |
protected |
Dostęp jest ograniczony do zawierającej klasy lub typów pochodzących z zawierającej klasy. |
internal |
Dostęp jest ograniczony do bieżącego zestawu. |
protected internal |
Dostęp jest ograniczony do bieżącego zestawu lub typów pochodzących z zawierającej klasy. |
private |
Dostęp jest ograniczony do typu zawierającego. |
private protected |
Dostęp jest ograniczony do zawierającej klasy lub typów pochodzących z zawierającej klasy w bieżącym zestawie. |
Tylko jeden modyfikator dostępu jest dozwolony dla elementu członkowskiego lub typu, z wyjątkiem sytuacji, w których używasz protected internal
kombinacji lub private protected
.
Modyfikatory dostępu nie są dozwolone w przestrzeniach nazw. Przestrzenie nazw nie mają ograniczeń dostępu.
W zależności od kontekstu, w którym występuje deklaracja elementu członkowskiego, dozwolone są tylko niektóre zadeklarowane możliwości dostępu. Jeśli w deklaracji elementu członkowskiego nie określono modyfikatora dostępu, zostanie użyta domyślna dostępność.
Typy najwyższego poziomu, które nie są zagnieżdżone w innych typach, mogą mieć internal
tylko ułatwienia dostępu lub public
. Domyślnym ułatwieniami dostępu dla tych typów jest internal
.
Zagnieżdżone typy, które są elementami członkowskimi innych typów, mogą mieć zadeklarowane możliwości dostępu, jak wskazano w poniższej tabeli.
Członkowie | Domyślne ułatwienia dostępu do składowych | Dozwolone zadeklarowane ułatwienia dostępu elementu członkowskiego |
---|---|---|
enum |
public |
Brak |
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 |
* Element interface
członkowski z private
ułatwieniami dostępu musi mieć domyślną implementację.
Uwaga
Jeśli klasa lub struktura jest modyfikowana za pomocą modyfikatora słowa kluczowego record
, to te same modyfikatory dostępu są dozwolone.
Ponadto przy modyfikatorze record
domyślne ułatwienia dostępu składowych są nadal private
dostępne zarówno dla klasy, jak i struktury.
Dostępność typu zagnieżdżonego zależy od jego domeny ułatwień dostępu, która jest określana zarówno przez zadeklarowaną dostępność elementu członkowskiego, jak i domenę ułatwień dostępu natychmiast zawierającego typ. Jednak domena ułatwień dostępu typu zagnieżdżonego nie może przekroczyć tego typu zawierającego.
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.