Teilen über


private (C#-Referenz)

Das private Schlüsselwort ist ein Memberzugriffsmodifizierer.

In diesem Artikel wird der Zugriff behandelt private . Das private Schlüsselwort ist auch Teil des private protected Zugriffsmodifizierers.

Die C#-Sprachreferenz dokumentiert die zuletzt veröffentlichte Version der C#-Sprache. Außerdem enthält sie eine erste Dokumentation zu Funktionen in der öffentlichen Vorschau für die kommende Sprachversion.

In der Dokumentation werden alle Features identifiziert, die in den letzten drei Versionen der Sprache oder in der aktuellen öffentlichen Vorschau eingeführt wurden.

Tipp

Informationen dazu, wann ein Feature erstmals in C# eingeführt wurde, finden Sie im Artikel zum Versionsverlauf der C#-Sprache.

Der private Zugriff ist die am wenigsten zulässige Zugriffsebene. Sie können nur innerhalb des Texts der Klasse oder der Struktur, in der Sie sie deklarieren, auf private Member zugreifen, wie im folgenden Beispiel gezeigt:

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

Geschachtelte Typen im selben Text können auch auf diese privaten Mitglieder zugreifen.

Wenn Sie auf ein privates Element außerhalb der Klasse oder der Struktur verweisen, in der Sie es deklarieren, gibt der Compiler einen Fehler zurück.

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

In diesem Beispiel enthält die Employee Klasse zwei private Datenmmber _name und _salary. Als private Mitglieder sind Membermethoden die einzige Möglichkeit, auf sie zuzugreifen. Im Beispiel werden öffentliche Methoden namens hinzugefügt GetName und Salary der kontrollierte Zugriff auf die privaten Mitglieder ermöglicht. Der Zugriff auf das _name Mitglied erfolgt über eine öffentliche Methode, und der Zugriff auf das _salary Mitglied erfolgt über eine öffentliche schreibgeschützte Eigenschaft. Weitere Informationen finden Sie unter "Eigenschaften".

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 endgültige Quelle für C#-Syntax und -Verwendung.

Siehe auch