Udostępnij za pośrednictwem


private (odwołanie w C#)

Słowo private kluczowe jest modyfikatorem dostępu do składowych.

Ta strona obejmuje private dostęp. Słowo private kluczowe jest również częścią private protected modyfikatora dostępu.

Dostęp prywatny jest najmniej permissive poziom dostępu. Prywatne elementy członkowskie są dostępne tylko w treści klasy lub struktury, w której są deklarowane, jak w tym przykładzie:

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

Zagnieżdżone typy w tej samej treści mogą również uzyskiwać dostęp do tych prywatnych elementów członkowskich.

Jest to błąd czasu kompilacji, aby odwołać się do prywatnego elementu członkowskiego spoza klasy lub struktury, w której jest zadeklarowany.

Aby uzyskać porównanie private z innymi modyfikatorami dostępu, zobacz Poziomy ułatwień dostępu i modyfikatory dostępu.

Przykład

W tym przykładzie Employee klasa zawiera dwa prywatne składowe danych i _name_salary. Jako członkowie prywatni nie mogą być dostępni z wyjątkiem metod składowych. Metody publiczne o nazwie GetName i Salary są dodawane, aby umożliwić kontrolowany dostęp do prywatnych elementów członkowskich. Dostęp _name do elementu członkowskiego jest uzyskiwany za pomocą metody publicznej, a _salary dostęp do elementu członkowskiego uzyskuje się za pomocą publicznej właściwości tylko do odczytu. Aby uzyskać więcej informacji, zobacz Właściwości.

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;
    }
}

specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Zadeklarowane ułatwienia dostępu w specyfikacji języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.

Zobacz też