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


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#.

См. также