private (C# 参考)

关键字 private 是成员访问修饰符。

本页涵盖 private 访问。 关键字 private 也是访问修饰符的 private protected 一部分。

专用访问是最不宽松的访问级别。 专用成员只能在类的正文或声明它们的结构中访问,如以下示例所示:

class Employee
{
    private int _i;
    double _d;   // private access by default
}

同一正文中的嵌套类型也可以访问这些私有成员。

这是一个编译时错误,用于引用类外部的私有成员或声明该成员的结构。

有关与其他访问修饰符的 private 比较,请参阅 辅助功能级别访问修饰符

示例:

在此示例中,该 Employee 类包含两个私有数据成员, _name 以及 _salary。 作为私有成员,除了成员方法之外,无法访问它们。 命名 GetNameSalary 添加公共方法以允许对私有成员进行受控访问。 该 _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# 语法和用法的明确来源。

另请参阅