private (Referência de C#)private (C# Reference)

A palavra-chave private é um modificador de acesso de membro.The private keyword is a member access modifier.

Esta página aborda o acesso private.This page covers private access. A palavra-chave private também faz parte do modificador de acesso private protected.The private keyword is also part of the private protected access modifier.

Acesso particular é o nível de acesso menos permissivo.Private access is the least permissive access level. Membros particulares são acessíveis somente dentro do corpo da classe ou do struct em que são declarados, como neste exemplo:Private members are accessible only within the body of the class or the struct in which they are declared, as in this example:

class Employee
{
    private int i;
    double d;   // private access by default
}

Tipos aninhados no mesmo corpo também podem acessar os membros particulares.Nested types in the same body can also access those private members.

É um erro em tempo de compilação fazer referência a um membro particular fora da classe ou do struct em que ele é declarado.It is a compile-time error to reference a private member outside the class or the struct in which it is declared.

Para obter uma comparação de private com os outros modificadores de acesso, consulte Níveis de acessibilidade e Modificadores de acesso.For a comparison of private with the other access modifiers, see Accessibility Levels and Access Modifiers.

ExemploExample

Neste exemplo, a classe Employee contém dois membros de dados particulares, name e salary.In this example, the Employee class contains two private data members, name and salary. Como membros particulares, eles não podem ser acessados, exceto por métodos de membro.As private members, they cannot be accessed except by member methods. Métodos públicos chamados GetName e Salary foram adicionados para permitir acesso controlado aos membros particulares.Public methods named GetName and Salary are added to allow controlled access to the private members. 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.The name member is accessed by way of a public method, and the salary member is accessed by way of a public read-only property. (Consulte Propriedades para obter mais informações.)(See Properties for more information.)

class Employee2
{
    private string name = "FirstName, LastName";
    private double salary = 100.0;

    public string GetName()
    {
        return name;
    }

    public double Salary
    {
        get { return salary; }
    }
}

class PrivateTest
{
    static void Main()
    {
        Employee2 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#C# language specification

Para obter mais informações, consulte a Especificação da linguagem C#.For more information, see the C# Language Specification. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.The language specification is the definitive source for C# syntax and usage.

Consulte tambémSee also