private (odwołanie w C#)private (C# Reference)

Słowo kluczowe private jest modyfikatorem dostępu składowej.The private keyword is a member access modifier.

Ta strona obejmuje private dostępu.This page covers private access. Słowo kluczowe private jest również częścią modyfikatora dostępu private protected .The private keyword is also part of the private protected access modifier.

Dostęp prywatny to najmniejszy poziom dostępu.Private access is the least permissive access level. Prywatne elementy członkowskie są dostępne tylko w treści klasy lub struktury, w której są zadeklarowane, jak w poniższym przykładzie: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
}

Typy zagnieżdżone w tej samej treści mogą również uzyskiwać dostęp do tych prywatnych członków.Nested types in the same body can also access those private members.

Jest to błąd czasu kompilacji, który odwołuje się do prywatnego elementu członkowskiego spoza klasy lub struktury, w której jest zadeklarowany.It is a compile-time error to reference a private member outside the class or the struct in which it is declared.

Aby uzyskać porównanie private z innymi modyfikatorami dostępu, zobacz poziomy ułatwień dostępu i Modyfikatory dostęp.For a comparison of private with the other access modifiers, see Accessibility Levels and Access Modifiers.

PrzykładExample

W tym przykładzie Klasa Employee zawiera dwa prywatne elementy członkowskie danych, name i salary.In this example, the Employee class contains two private data members, name and salary. Jako prywatne elementy członkowskie nie są dostępne z wyjątkiem metod składowych.As private members, they cannot be accessed except by member methods. Metody publiczne o nazwie GetName i Salary są dodawane w celu umożliwienia kontrolowanego dostępu do prywatnych członków.Public methods named GetName and Salary are added to allow controlled access to the private members. Członek name jest dostępny w postaci metody publicznej, a członek salary jest dostępny w postaci publicznej właściwości tylko do odczytu.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. (Zobacz Właściwości , aby uzyskać więcej informacji).(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()
    {
        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;
    }
}

specyfikacja języka C#C# language specification

Aby uzyskać więcej informacji, zobacz zadeklarowane ułatwienia dostępu w C# specyfikacji języka.For more information, see Declared accessibility in the C# Language Specification. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.The language specification is the definitive source for C# syntax and usage.

Zobacz takżeSee also