次の方法で共有


アクセシビリティ レベル (C# リファレンス)

アクセス修飾子 publicprotectedinternal、または 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 public

protected

internal

private

protected internal

private protected
interface public public

protected

internal

private*

protected internal

private protected
struct private public

internal

private

* interfaceアクセシビリティを持つprivate メンバーには、既定の実装が必要です。

record キーワード修飾子を使用してクラスまたは構造体を変更する場合は、同じアクセス修飾子を使用します。 また、 record 修飾子を使用すると、クラスと構造体の両方に対して既定のメンバー アクセシビリティが引き続き private されます。

入れ子になった型のアクセシビリティは、その アクセシビリティ ドメインによって異なります。これは、メンバーの宣言されたアクセシビリティと、すぐに含まれる型のアクセシビリティ ドメインによって決まります。 ただし、入れ子になった型のアクセシビリティ ドメインは、含まれる型のアクセシビリティ ドメインを超えることはできません。

C# 言語仕様

詳細については、C# 言語仕様のを参照してください。 言語仕様は、C# の構文と使用法の決定的なソースです。

こちらも参照ください