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