private (C# リファレンス)
private
キーワードはメンバー アクセス修飾子です。
このページでは、
private
アクセスについて説明します。private
キーワードもprivate protected
アクセス修飾子に含まれます。
プライベート アクセスは、最も制限の多いアクセス レベルです。 次の例に示すように、プライベート メンバーは、宣言されているクラスまたは構造体の本体内でのみアクセスできます。
class Employee
{
private int _i;
double _d; // private access by default
}
同じ本体にある入れ子にされた型も、プライベート メンバーにアクセスできます。
プライベート メンバーへの参照を、クラスの外側やメンバーが宣言されているクラスの外側から行った場合は、コンパイル時のエラーが発生します。
private
とその他のアクセス修飾子の比較については、「アクセシビリティ レベル」と「アクセス修飾子」を参照してください。
例
この例では、Employee
クラスに _name
と _salary
という 2 つのプライベート データ メンバーが含まれています。 これらのメンバーは、プライベート メンバーであり、メンバー メソッド以外からはアクセスできません。 GetName
と Salary
というパブリック メソッドが追加されており、プライベート メンバーへの制御されたアクセスが許可されています。 _name
メンバーはパブリック メソッドを通してアクセスされ、_salary
メンバーはパブリックな読み取り専用プロパティを通してアクセスされます 詳細については、「 プロパティで定義されているインターフェイスのプライベート C++ 固有の実装です。
class Employee2
{
private readonly string _name = "FirstName, LastName";
private readonly double _salary = 100.0;
public string GetName()
{
return _name;
}
public double Salary
{
get { return _salary; }
}
}
class PrivateTest
{
static void Main()
{
var 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# の構文と使用法に関する信頼性のある情報源です。
関連項目
.NET