次の方法で共有


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

アクセス修飾子、 publicprotectedinternal、または 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# の構文と使用法の決定的なソースです。

こちらも参照ください