private (Referência de C#)
A palavra-chave private
é um modificador de acesso de membro.
Esta página aborda o acesso
private
. A palavra-chaveprivate
também faz parte do modificador de acessoprivate 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#.