private (Referencia de C#)
La palabra clave private
es un modificador de acceso de miembro.
Esta página trata sobre el modificador de acceso
private
. La palabra claveprivate
también forma parte del modificador de accesoprivate protected
.
El acceso privado es el nivel de acceso menos permisivo. Los miembros privados solo son accesibles dentro del cuerpo de la clase o el struct en el que se declaran, como en este ejemplo:
class Employee
{
private int _i;
double _d; // private access by default
}
Los tipos anidados en el mismo cuerpo también pueden tener acceso a los miembros privados.
Hacer referencia a un miembro privado fuera de la clase o el struct en el que se declara es un error en tiempo de compilación.
Para obtener una comparación de private
con los demás modificadores de acceso, vea Niveles de accesibilidad y Modificadores de acceso.
Ejemplo
En este ejemplo, la clase Employee
contiene dos miembros de datos privados, _name
y _salary
. Como miembros privados, solo pueden tener acceso a ellos los métodos de miembro. Los métodos públicos denominados GetName
y Salary
se agregan para permitir un acceso controlado a los miembros privados. Se tiene acceso al miembro _name
a través de un método público, mientras que se tiene acceso al miembro _salary
a través de una propiedad pública de solo lectura. Para obtener más información, consulta Propiedades.
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;
}
}
Especificación del lenguaje C#
Para obtener más información, vea la sección Accesibilidad declarada de la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.