private (C#-Referenz)
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 und Zugriffsmodifizierer (C#-Programmierhandbuch).
In diesem Beispiel enthält die Employee-Klasse zwei private Datenmember, name und salary. Da sie private Member sind, können nur Membermethoden auf sie zugreifen. Aus diesem Grund werden öffentliche Methoden mit den Namen GetName und Salary aufgerufen, die hinzugefügt werden, um einen kontrollierten Zugriff auf private 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).)
// private_keyword.cs
using System;
class Employee
{
private string name = "FirstName, LastName";
private double salary = 100.0;
public string GetName()
{
return name;
}
public double Salary
{
get { return salary; }
}
}
class MainClass
{
static void Main()
{
Employee e = new Employee();
// The data members are inaccessible (private), so
// then 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;
}
}
Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:
-
3.5.1 Deklarierter Zugriff
-
3.5.4 Zugriffsbeschränkungen
-
10.2.3 Zugriffsmodifizierer
-
10.2.6.2 Deklarierter Zugriff
-
10.2.6.5 Zugriff auf private und geschützte Member des enthaltenden Typs