アクセス修飾子 public、 protected、 internal、または private を使用して、メンバーに対して次に宣言されているアクセシビリティ レベルのいずれかを指定します。
| 宣言されたアクセシビリティ | 意味 |
|---|---|
public |
アクセスは制限されません。 |
protected |
Access は、包含クラスまたは包含クラスから派生した型に制限されます。 |
internal |
アクセスは現在のアセンブリに制限されます。 |
protected internal |
Access は、現在のアセンブリまたは包含クラスから派生した型に制限されます。 |
private |
アクセスは、含まれる型に制限されます。 |
private protected |
Access は、現在のアセンブリ内の包含クラスから派生した包含クラスまたは型に制限されます。 |
最上位 (入れ子になっていない) 型では、 ファイル 修飾子を使用できます。
file修飾子は、同じソース ファイル内のコードへのアクセスを制限します。
file修飾子とアクセス修飾子を組み合わせることはできません。
protected internalまたはprivate protectedの組み合わせを使用する場合を除き、メンバーまたは型には 1 つのアクセス修飾子のみを使用します。
名前空間でアクセス修飾子を使用しないでください。 名前空間には、アクセス制限がありません。
メンバー宣言が発生するコンテキストに応じて、特定の宣言されたアクセシビリティのみが許可されます。 メンバー宣言でアクセス修飾子を指定しない場合は、既定のアクセシビリティが使用されます。
他の型に入れ子になっていない最上位の型は、 internal または public アクセシビリティのみを持つことができます。 これらの型の既定のアクセシビリティは internal。
他の型のメンバーである入れ子になった型は、次の表に示すように、アクセシビリティを宣言できます。
| のメンバー | 既定のメンバー アクセシビリティ | メンバーの宣言されたアクセシビリティを許可する |
|---|---|---|
enum |
public |
無し |
class |
private |
publicprotectedinternalprivateprotected internal private protected |
interface |
public |
publicprotectedinternalprivate*protected internal private protected |
struct |
private |
publicinternalprivate |
* interfaceアクセシビリティを持つprivate メンバーには、既定の実装が必要です。
注
record キーワード修飾子を使用してクラスまたは構造体を変更する場合は、同じアクセス修飾子を使用します。
また、 record 修飾子を使用すると、クラスと構造体の両方に対して既定のメンバー アクセシビリティが引き続き private されます。
入れ子になった型のアクセシビリティは、その アクセシビリティ ドメインによって異なります。これは、メンバーの宣言されたアクセシビリティと、すぐに含まれる型のアクセシビリティ ドメインによって決まります。 ただし、入れ子になった型のアクセシビリティ ドメインは、含まれる型のアクセシビリティ ドメインを超えることはできません。
C# 言語仕様
詳細については、C# 言語仕様のを参照してください。 言語仕様は、C# の構文と使用法の決定的なソースです。
こちらも参照ください
.NET