private (C#-Referenz)

Das private-Schlüsselwort ist ein Zugriffsmodifizierer für Member.

Auf dieser Seite wird der Zugriff auf private behandelt. Das Schlüsselwort private ist auch Teil des Zugriffsmodifizierers private protected.

Privater-Zugriff ist die am wenigsten eingeschränkte Zugriffsebene. Private Member sind nur innerhalb der Klasse oder Struktur, in der sie, wie im folgenden Beispiel, deklariert werden:

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

Geschachtelte Typen im gleichen Text können auch auf diese privaten Member zugreifen.

Es ist ein Kompilierzeitfehler auf einen privaten Member außerhalb der Klasse oder Struktur, in der sie deklariert ist, zu verweisen.

Einen Vergleich von private mit den anderen Zugriffsmodifizierern finden Sie unter Zugriffsebenen und Zugriffsmodifizierer.

Beispiel

In diesem Beispiel enthält die Employee-Klasse zwei private Datenmember, _name und _salary. Als private Member können nur Membermethoden auf sie zugreifen. Die öffentlichen Methoden GetName und Salary werden hinzugefügt, um 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 unter Eigenschaftendefiniert sind.

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#-Sprachspezifikation

Weitere Informationen finden Sie unter Deklarierte Barrierefreiheit in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch