アクセス修飾子

アクセス修飾子(access modifiers)は、メンバーまたは型の宣言されたアクセシビリティ(accessibility;利用しやすさ;参照可能範囲)を指定するために使用されるキーワードです。
宣言したクラス、プロパティ、メソッド等がどの範囲から参照できるかを定義します。


アクセシビリティレベル

アクセシビリティレベル(accessibility levels)は、アクセス修飾子毎のアクセシビリティの段階のことです。

アクセシビリティ一覧

アクセシビリティの宣言 説明
public アクセスの制限はありません。
protected アクセスは、コンテナー クラス、またはコンテナー クラスから派生した型に制限されます。
internal アクセスは現在のアセンブリに制限されます。
protected internal 現在のアセンブリへのアクセスは、コンテナー クラス、またはコンテナー クラスから派生した型に制限されます。
private アクセスはコンテナー型に制限されます。

コンテナ別アクセシビリティ

メンバーが宣言されているコンテキストによっては、決まったアクセシビリティしか宣言できない場合があります。
メンバーの宣言にアクセス修飾子が指定されていない場合は、既定のアクセシビリティが使用されます。
入れ子にされた型 (他の型のメンバーになっている型) には、次の表に示したアクセシビリティを宣言することができます。
尚、名前空間には、アクセス制限がありません。

コンテナ 既定のアクセシビリティ 宣言できるアクセシビリティ
enum public なし
class private public
protected
internal
private
protected internal
internal public なし
class private public
internal
private

アクセシビリティの宣言の例

// Accessibility program in C#.
using System;
namespace EFnote
{
    public class Employee
    {
        // 従業員コード
        // setへのアクセスはコンテナー型に制限されます。
        public int Code { get; private set; }
                        
        // 従業員名
        public string Name { get; set; }
                        
        // 評価 
        // アクセスは、コンテナー クラス、またはコンテナー クラスから派生した型に制限されます。 
        protected double Evaluation { get; set; }    

        // 生年月日
        public DateTime Birthday { get; set; }
    }
}

Last updated:2017/08/11
Author:efn

';