Freigeben über


private (C#-Referenz)

Aktualisiert: November 2007

Bei dem private-Schlüsselwort handelt es sich um einen Zugriffsmodifizierer für Member. Der Zugriff vom Typ private stellt die am meisten eingeschränkte Zugriffsebene dar. Private Member sind nur innerhalb des Klassen- oder Strukturtexts zugreifbar, in dem sie deklariert wurden, wie das Beispiel zeigt:

class Employee
{
    private int i;
    double d;   // private access by default
}

Geschachtelte Typen im gleichen Textbereich können ebenfalls auf Member mit dem Zugriffsmodifizierer private zugreifen.

Ein Verweis auf einen Member mit dem Zugriffsmodifizierer private außerhalb der Klasse oder Struktur, in der er deklariert wurde, verursacht einen Fehler während der Kompilierung.

Einen Vergleich von private mit den anderen Zugriffsmodifizierern finden Sie unter Zugriffsebenen (C#-Referenz) und Zugriffsmodifizierer (C#-Programmierhandbuch).

Beispiel

In diesem Beispiel enthält die Employee-Klasse zwei private Datenmember, name und salary. Da es sich um private Member handelt, ist der Zugriff nur über Membermethoden möglich. Die öffentlichen Methoden GetName und Salary werden hinzugefügt, um den gesteuerten Zugriff auf die privaten Member zu ermöglichen. Auf den name-Member wird über eine öffentliche Methode zugegriffen, und auf den salary-Member wird über eine öffentliche schreibgeschützte Eigenschaft zugegriffen. (Weitere Informationen finden Sie im Eigenschaften (C#-Programmierhandbuch).)

class Employee2
{
    private string name = "FirstName, LastName";
    private double salary = 100.0;

    public string GetName()
    {
        return name;
    }

    public double Salary
    {
        get { return salary; }
    }
}

class PrivateTest
{
    static void Main()
    {
        Employee2 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#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 3.5.1 Deklarierter Zugriff

  • 3.5.4 Zugriffsbeschränkungen

  • 10.3.5 Zugriffsmodifizierer

  • 10.3.8.2 Deklarierter Zugriff

  • 10.3.8.5 Zugriff auf private und geschützte Member des enthaltenden Typs

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

C#-Schlüsselwörter

Zugriffsmodifizierer (C#-Referenz)

Zugriffsebenen (C#-Referenz)

Modifizierer (C#-Referenz)

public (C#-Referenz)

protected (C#-Referenz)

internal (C#-Referenz)

Weitere Ressourcen

C#-Referenz