Megosztás:


privát (C#-referencia)

A private kulcsszó egy taghozzáférés-módosító.

Ez a cikk a hozzáféréssel foglalkozik private . A private kulcsszó a hozzáférési módosító része private protected is.

A C# nyelv referenciadokumentuma a C# nyelv legújabb kiadású verzióját ismerteti. Emellett a közelgő nyelvi kiadás nyilvános előzetes verziójú funkcióinak kezdeti dokumentációját is tartalmazza.

A dokumentáció azonosítja azokat a funkciókat, amelyeket először a nyelv utolsó három verziójában vagy az aktuális nyilvános előzetes verziókban vezetnek be.

Jótanács

Ha meg szeretné tudni, hogy mikor jelent meg először egy funkció a C#-ban, tekintse meg a C# nyelvi verzióelőzményeiről szóló cikket.

A privát hozzáférés a legkevésbé megengedő hozzáférési szint. A magántagokat csak az osztály törzsén vagy a deklarált szervezeti egységen belül érheti el, ahogyan az alábbi példában látható:

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

Az ugyanabban a törzsben lévő beágyazott típusok ezekhez a privát tagokhoz is hozzáférhetnek.

Ha az osztályon kívüli magántagra vagy a deklaráció helye szerinti szerkezetre hivatkozik, a fordító hibát ad vissza.

A többi hozzáférési módosítóval való összehasonlítást private lásd: Akadálymentességi szintek és hozzáférési módosítók.

Ebben a példában az Employee osztály két privát adattagot _name és _salary. Privát tagként csak a tagmetelyek férhetnek hozzá. A példa nyilvános metódusokat ad hozzá, GetName és Salary lehetővé teszi az ellenőrzött hozzáférést a privát tagok számára. A _name tag nyilvános módszerrel érhető el, a _salary tag pedig nyilvános írásvédett tulajdonságon keresztül érhető el. További információ: Tulajdonságok.

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

C# nyelvspecifikáció

További információ: Deklarált akadálymentesség a C# nyelvi specifikációjában. A nyelvi specifikáció a C#-szintaxis és -használat végleges forrása.

Lásd még