Поделиться через


private (справочник по C#)

Ключевое 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#.

См. также