項目のアクセス変更子は、他のコードへの項目の可視性 (アクセス性) を制御します。たとえば、public メソッドはどこからでも呼び出すことができますが、private メソッドは、同じタイプ内の他のメソッドからのみ呼び出すことができます。
その他の情報
デフォルトでは、PRIVATE のフィールドを除き、すべてのタイプとメンバーは PUBLIC になります。
変更子は、項目の可視性に次のように影響を与えます。
変更子: |
項目が表示される状況: |
PUBLIC |
常時 |
PRIVATE |
呼び出しタイプがターゲット タイプと同じ場合 |
PROTECTED |
呼び出しタイプがターゲット タイプから継承する場合
|
INTERNAL |
呼び出しタイプがターゲット タイプと同じアセンブリ内にある場合
|
PROTECTED INTERNAL または INTERNAL PROTECTED |
呼び出しタイプがターゲット タイプから派生する場合、または呼び出しタイプがターゲットと同じアセンブリ内にある場合
|
- PUBLIC
- 該当項目が任意のコードからアクセスできることを示します。
- PRIVATE
- 該当項目が、包含タイプ内からのみアクセスできることを示します。
- PROTECTED
- 該当項目が、包含タイプ内からのみ、または包含タイプから継承するサブタイプからアクセスできることを示します。PROTECTED は抽象メンバーで指定できません。PROTECTED は、継承ツリー内にアクセスを制御します。たとえば、サブクラス内の保護対象フィールドには任意のサブクラスからアクセスできますが、継承ツリー外のクラスからはアクセスできません。
- INTERNAL
- 該当項目が、現在のコンパイル ユニット内からのみアクセスできることを示します。
- PROTECTED INTERNAL または INTERNAL PROTECTED
- 該当項目が、包含タイプ内、包含タイプから継承するサブタイプ、または現在のコンパイル ユニット内からのみアクセスできることを示します。