privat (C#-referens)

Nyckelordet private är en medlemsåtkomstmodifierare.

Den här sidan beskriver private åtkomst. Nyckelordet private är också en del av private protected åtkomstmodifieraren.

Privat åtkomst är den minst tillåtande åtkomstnivån. Privata medlemmar är endast tillgängliga i brödtexten i klassen eller den struct som de deklareras i, som i det här exemplet:

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

Kapslade typer i samma brödtext kan också komma åt dessa privata medlemmar.

Det är ett kompileringsfel att referera till en privat medlem utanför klassen eller den struct som den deklareras i.

En jämförelse av private med andra åtkomstmodifierare finns i Hjälpmedelsnivåer och Åtkomstmodifierare.

Exempel

I det här exemplet Employee innehåller klassen två privata datamedlemmar och _name_salary. Som privata medlemmar kan de inte nås förutom med medlemsmetoder. Offentliga metoder med namnet GetName och Salary läggs till för att tillåta kontrollerad åtkomst till de privata medlemmarna. Medlemmen _name nås via en offentlig metod och _salary medlemmen nås via en offentlig skrivskyddad egenskap. Mer information finns i Egenskaper.

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

Språkspecifikation för C#

Mer information finns i Deklarerad tillgänglighet i C#-språkspecifikationen. Språkspecifikationen är den slutgiltiga källan för C#-syntax och -användning.

Se även