アクセシビリティ レベル (C# リファレンス)
アクセス修飾子 public、protected、internal、または private を使用して、メンバーに対する宣言済みのアクセシビリティ レベルとして以下のいずれか 1 つを指定できます。
宣言されたアクセシビリティ |
説明 |
---|---|
public |
アクセスの制限はありません。 |
protected |
アクセスは、コンテナー クラス、またはコンテナー クラスから派生した型に制限されます。 |
internal |
アクセスは現在のアセンブリに制限されます。 |
protected internal |
現在のアセンブリ、またはコンテナー クラスから派生した型に制限されるアクセス |
private |
アクセスはコンテナー型に制限されます。 |
1 つのメンバーまたは型に対してアクセス修飾子を 1 つだけ指定できますが、protectedinternal の組み合わせは例外です。
アクセス修飾子は、名前空間では使用できません。名前空間には、アクセス制限はありません。
メンバーの宣言が行われるコンテキストに応じて、特定の宣言されたアクセシビリティだけが許可されます。メンバー宣言にアクセス修飾子の指定がない場合には、既定のアクセシビリティが使用されます。
他の型の中の入れ子になっていないトップ レベルの型は、internal または public のアクセシビリティだけを持つことができます。このような型の既定のアクセシビリティは internal です。
他の型のメンバーである入れ子にされた型は、次の表に示すように、宣言されたアクセシビリティを持つことができます。
メンバーとして属する型 |
既定のメンバー アクセシビリティ |
メンバーの許可される宣言されたアクセシビリティ |
---|---|---|
enum |
public |
なし |
class |
private |
public protected internal private protected internal |
interface |
public |
なし |
struct |
private |
public internal private |
入れ子にされた型のアクセシビリティは、アクセシビリティ ドメインに依存します。アクセシビリティ ドメインは、メンバーの宣言されたアクセシビリティと、すぐ上位のコンテナー型のアクセシビリティ ドメインによって決定されます。ただし、入れ子にされた型のアクセシビリティ ドメインが、その型を含んでいる型のアクセシビリティ ドメインを上回ることはできません。
C# 言語仕様
詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。
参照
関連項目
アクセシビリティ レベルの使用に関する制限事項 (C# リファレンス)