private (C#-Referenz)
Das private
-Schlüsselwort ist ein Zugriffsmodifizierer für Member.
Auf dieser Seite wird der Zugriff auf
private
behandelt. Das Schlüsselwortprivate
ist auch Teil des Zugriffsmodifizierersprivate 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#.