Partilhar via


private (Referência C#)

A private palavra-chave é um modificador de acesso a membros.

Este artigo aborda private o acesso. A private palavra-chave também faz parte do private protected modificador de acesso.

A referência da linguagem C# documenta a versão mais recentemente lançada da linguagem C#. Contém também documentação inicial para funcionalidades em versões preliminares públicas para a próxima versão da linguagem.

A documentação identifica qualquer funcionalidade introduzida pela primeira vez nas últimas três versões da língua ou em pré-visualizações públicas atuais.

Sugestão

Para saber quando uma funcionalidade foi introduzida pela primeira vez em C#, consulte o artigo sobre o histórico de versões da linguagem C#.

O acesso privado é o nível de acesso menos permissivo. Só podes aceder a membros privados dentro do corpo da classe ou da estrutura onde os declaras, como mostrado no exemplo seguinte:

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

Tipos aninhados no mesmo corpo também podem acessar esses membros privados.

Se referenciares um membro privado fora da classe ou da estrutura onde o declaras, o compilador devolve um erro.

Para obter uma comparação com os outros modificadores de acesso, consulte private e modificadores de acesso.

Neste exemplo, a Employee classe contém dois membros _name de dados privados e _salary. Como membros privados, os métodos dos membros são a única forma de aceder a eles. O exemplo acrescenta métodos públicos nomeados GetName e Salary 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 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, consulte Acessibilidade declarada na Especificação de linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso do C#.

Ver também