关键字 private
是成员访问修饰符。
本页涵盖
private
访问。 关键字private
也是访问修饰符的private protected
一部分。
专用访问是最不宽松的访问级别。 专用成员只能在类的正文或声明它们的结构中访问,如以下示例所示:
class Employee
{
private int _i;
double _d; // private access by default
}
同一正文中的嵌套类型也可以访问这些私有成员。
这是一个编译时错误,用于引用类外部的私有成员或声明该成员的结构。
有关与其他访问修饰符的 private
比较,请参阅 辅助功能级别 和 访问修饰符。
示例:
在此示例中,该 Employee
类包含两个私有数据成员, _name
以及 _salary
。 作为私有成员,除了成员方法之外,无法访问它们。 命名 GetName
并 Salary
添加公共方法以允许对私有成员进行受控访问。 该 _name
成员通过公共方法进行访问,并通过 _salary
公共只读属性访问该成员。 有关详细信息,请参阅 “属性”。
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# 语法和用法的明确来源。