private (Referência de C#)

A palavra-chave private é um modificador de acesso de membro.

Esta página aborda o acesso private. A palavra-chave private também faz parte do modificador de acesso private protected.

Acesso particular é o nível de acesso menos permissivo. Membros particulares são acessíveis somente dentro do corpo da classe ou do struct em que são declarados, como neste exemplo:

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

Tipos aninhados no mesmo corpo também podem acessar os membros particulares.

É um erro em tempo de compilação fazer referência a um membro particular fora da classe ou do struct em que ele é declarado.

Para obter uma comparação de private com os outros modificadores de acesso, consulte Níveis de acessibilidade e Modificadores de acesso.

Exemplo

Neste exemplo, a classe Employee contém dois membros de dados particulares, _name e _salary. Como membros particulares, eles não podem ser acessados, exceto por métodos de membro. Métodos públicos chamados GetName e Salary foram adicionados para permitir acesso controlado aos membros particulares. O membro _name é acessado por meio de um método público e o membro _salary é acessado por meio de uma propriedade somente leitura pública. Para obter mais informações, consulte Propriedades.

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;
    }
}

Especificação da linguagem C#

Para obter mais informações, veja Acessibilidade declarada na Especificação da Linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Confira também