Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Klíčové private slovo je modifikátor přístupu člena.
Tento článek popisuje
privatepřístup. Klíčovéprivateslovo je také součástí modifikátoruprivate protectedpří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#.