Compartilhar via


private (Referência de C#)

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

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

O acesso privado é o nível de acesso menos permissivo. Os membros privados são acessíveis somente dentro do corpo da classe ou do struct no qual 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 esses membros privados.

É um erro de tempo de compilação fazer referência a um membro privado fora da classe ou ao struct no qual ele é declarado.

Para obter uma comparação entre os outros modificadores de private acesso, consulte Os Níveis de Acessibilidade e modificadores de acesso.

Exemplo

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

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, consulte A acessibilidade declarada na Especificação da Linguagem C#. A especificação de idioma é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também