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