private (Riferimenti per C#)
La parola chiave private
è un modificatore di accesso ai membri.
Questa pagina illustra l'accesso
private
. La parola chiaveprivate
fa anche parte del modificatore di accessoprivate protected
.
L'accesso privato è il livello di accesso più restrittivo. I membri privati sono accessibili solo all'interno del corpo della classe o dello struct in cui sono stati dichiarati, come nell'esempio seguente:
class Employee
{
private int _i;
double _d; // private access by default
}
Anche i tipi annidati dello stesso corpo possono accedere ai membri privati.
Fare riferimento a un membro privato all'esterno della classe o dello struct in cui è stato dichiarato genera un errore in fase di compilazione.
Per un confronto di private
con altri modificatori di accesso, vedere Livelli di accessibilità e Modificatori di accesso.
Esempio
In questo esempio la classe Employee
contiene due membri dati privati, _name
e _salary
. Essendo privati, i membri risulteranno accessibili solo ai metodi di membro. I metodi pubblici GetName
e Salary
vengono aggiunti per consentire il controllo dell'accesso ai membri privati. È possibile accedere al membro _name
tramite un metodo pubblico e al membro _salary
tramite una proprietà pubblica di sola lettura. Per ulteriori informazioni, vedi Proprietà.
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;
}
}
Specifiche del linguaggio C#
Per altre informazioni, vedere Accessibilità dichiarata in Specifica del linguaggio C#. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.