次の方法で共有


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

アクセス修飾子 publicprotectedinternal、または private を使用して、メンバーに対して次に宣言されているアクセシビリティ レベルのいずれかを指定します。

宣言されたアクセシビリティ 意味
public アクセスは制限されません。
protected Access は、包含クラスまたは包含クラスから派生した型に制限されます。
internal アクセスは現在のアセンブリに制限されます。
protected internal Access は、現在のアセンブリまたは包含クラスから派生した型に制限されます。
private アクセスは、含まれる型に制限されます。
private protected Access は、現在のアセンブリ内の包含クラスから派生した包含クラスまたは型に制限されます。

最上位 (入れ子になっていない) 型では、 ファイル 修飾子を使用できます。 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# の構文と使用法の決定的なソースです。

こちらも参照ください