Sdílet prostřednictvím


private (Referenční dokumentace jazyka C#)

Klíčové private slovo je modifikátor přístupu člena.

Tento článek popisuje private přístup. Klíčové private slovo je také součástí modifikátoru private protected přístupu.

Referenční dokumentace jazyka C# dokumentuje naposledy vydané verze jazyka C#. Obsahuje také počáteční dokumentaci k funkcím ve verzi Public Preview pro nadcházející jazykovou verzi.

Dokumentace identifikuje všechny funkce, které byly poprvé představeny v posledních třech verzích jazyka nebo v aktuálních verzích Public Preview.

Návod

Informace o tom, kdy byla funkce poprvé představena v jazyce C#, najdete v článku o historii verzí jazyka C#.

Privátní přístup je nejnižší úroveň přístupu. K soukromým členům můžete přistupovat pouze v těle třídy nebo struktury, kde je deklarujete, jak je znázorněno v následujícím příkladu:

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

Vnořené typy ve stejném textu mají také přístup k těmto soukromým členům.

Pokud odkazujete na soukromý člen mimo třídu nebo strukturu, kde je deklarujete, kompilátor vrátí chybu.

Porovnání private s ostatními modifikátory přístupu najdete v tématu Úrovně přístupnosti a Modifikátory přístupu.

V tomto příkladu Employee třída obsahuje dva soukromé datové členy _name a _salary. Jako soukromé členy představují metody členů jediný způsob, jak k nim přistupovat. Příklad přidá veřejné metody pojmenované GetName a Salary povolí řízený přístup k soukromým členům. Člen _name je přístupný prostřednictvím veřejné metody a _salary člen je přístupný prostřednictvím veřejné vlastnosti jen pro čtení. Další informace naleznete v tématu Vlastnosti.

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

Specifikace jazyka C#

Další informace naleznete v tématu Deklarovaná přístupnost ve specifikaci jazyka C#. Specifikace jazyka je konečným zdrojem syntaxe a použití jazyka C#.

Viz také