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