アクセス修飾子 public、 protected、 internal、または private を使用して、メンバーに対して次に宣言されているアクセシビリティ レベルのいずれかを指定します。
-
public: アクセスは制限されていません。 -
protected: コンテナーであるクラス、またはコンテナーであるクラスから派生した型にアクセスが制限されます。 -
internal: 現在のアセンブリにアクセスが制限されます。 -
protected internal:現在のアセンブリ、または包含クラスから派生した型にアクセスが限定されます。 -
private: コンテナーである型にアクセスが制限されます。 -
private protected:包含クラス、または包含クラスから派生した型にアクセスが制限されます。
C# 言語リファレンスには、C# 言語の最新リリース バージョンが記載されています。 また、今後の言語リリースのパブリック プレビューの機能に関する初期ドキュメントも含まれています。
このドキュメントでは、言語の最後の 3 つのバージョンまたは現在のパブリック プレビューで最初に導入された機能を特定します。
ヒント
C# で機能が初めて導入された時期を確認するには、 C# 言語バージョン履歴に関する記事を参照してください。
最上位 (入れ子になっていない) 型では、 ファイル 修飾子を使用できます。
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