private (C# リファレンス)
更新 : 2007 年 11 月
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# 言語仕様」の次のセクションを参照してください。
3.5.1 宣言されたアクセシビリティ
3.5.4 アクセシビリティの制約
10.3.5 アクセス修飾子
10.3.8.2 宣言されたアクセシビリティ
10.3.8.5 包含する型の private メンバおよび protected メンバへのアクセス