private (C# リファレンス)

private キーワードは、メンバー アクセス修飾子です。プライベートなアクセスは、許容度が最も低いアクセス レベルです。この例に示すように、プライベートなメンバーには、クラスの本体内か、メンバーが宣言されている構造体の内部でだけアクセス可能です。

class Employee
{
    private int i;
    double d;   // private access by default
}

同じ本体にある入れ子になったクラスも、プライベートなメンバーにアクセスできます。

プライベートなメンバーへの参照を、クラスの外側や、メンバーが宣言されているクラスの外側から行った場合は、コンパイル エラーになります。

private と他のアクセス修飾子の比較については、「アクセシビリティ レベル (C# リファレンス)」および「アクセス修飾子 (C# プログラミング ガイド)」を参照してください。

使用例

この例では、Employee クラスに name および salary という 2 つのプライベート データ メンバーが含まれています。これらのメンバーは、プライベート メンバーであり、メンバー メソッド以外からはアクセスできません。GetName および Salary というパブリック メソッドが追加され、プライベート メンバーへの制御されたアクセスを許可します。name メンバーはパブリック メソッドを介してアクセスされ、salary メンバーはパブリックな読み取り専用プロパティを介してアクセスされます。詳細については、「プロパティ (C# プログラミング ガイド)」を参照してください。

class Employee2
{
    private string name = "FirstName, LastName";
    private double salary = 100.0;

    public string GetName()
    {
        return name;
    }

    public double Salary
    {
        get { return salary; }
    }
}

class PrivateTest
{
    static void Main()
    {
        Employee2 e = new Employee2();

        // The data members are inaccessible (private), so
        // they can't be accessed like this:
        //    string n = e.name;
        //    double s = e.salary;

        // 'name' is indirectly accessed via method:
        string n = e.GetName();

        // 'salary' is indirectly accessed via property
        double s = e.Salary;
    }
}

C# 言語仕様

詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。

参照

関連項目

C# のキーワード

アクセス修飾子 (C# リファレンス)

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

修飾子 (C# リファレンス)

public (C# リファレンス)

protected (C# リファレンス)

internal (C# リファレンス)

概念

C# プログラミング ガイド

その他の技術情報

C# リファレンス