更新:2007 年 11 月

private 关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的,如下例所示:

 复制代码
class Employee
{
    private int i;
    double d;   // private access by default
}

同一体中的嵌套类型也可以访问那些私有成员。

在定义私有成员的类或结构外引用它会导致编译时错误。

有关 private 与其他访问修饰符的比较,请参见可访问性级别(C# 参考)访问修饰符(C# 编程指南)

示例

在此示例中,Employee 类包含两个私有数据成员 namesalary。作为私有成员,它们只能通过成员方法来访问。添加名为 GetNameSalary 的公共方法,以便可以对私有成员进行受控的访问。通过公共方法访问 name 成员,而通过公共只读属性访问salary 成员。(有关更多信息,请参见 属性(C# 编程指南)。)

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 访问包含类型的私有成员和受保护成员

请参见