Propiedades (Guía de programación de C#)
Actualización: noviembre 2007
Las propiedades son miembros que ofrecen un mecanismo flexible para leer, escribir o calcular los valores de campos privados. Las propiedades pueden utilizarse como si fuesen miembros de datos públicos, aunque en realidad son métodos especiales denominados descriptores de acceso. De este modo, se puede obtener acceso a los datos con facilidad, a la vez que se promueve la seguridad y flexibilidad de los métodos.
En este ejemplo, la clase TimePeriod almacena un período de tiempo. Internamente, la clase almacena el tiempo en segundos, pero una propiedad denominada Hours permite a un cliente especificar el tiempo en horas. Los descriptores de acceso de la propiedad Hours realizan la conversión entre horas y segundos.
Ejemplo
class TimePeriod
{
private double seconds;
public double Hours
{
get { return seconds / 3600; }
set { seconds = value * 3600; }
}
}
class Program
{
static void Main()
{
TimePeriod t = new TimePeriod();
// Assigning the Hours property causes the 'set' accessor to be called.
t.Hours = 24;
// Evaluating the Hours property causes the 'get' accessor to be called.
System.Console.WriteLine("Time in hours: " + t.Hours);
}
}
// Output: Time in hours: 24
Información general sobre propiedades
Las propiedades permiten que una clase exponga una manera pública de obtener y establecer valores, ocultando el código de implementación o comprobación.
El descriptor de acceso de una propiedad get se utiliza para devolver el valor de la propiedad y el descriptor de acceso set se utiliza para asignar un nuevo valor. Estos descriptores de acceso pueden tener niveles de acceso diferentes. Para obtener más información, consulte Accesibilidad del descriptor de acceso asimétrico (Guía de programación de C#).
La palabra clave value se utiliza para definir el valor asignado por el indizador set.
Las propiedades que no implementan un método set son de sólo lectura.
En el caso de las propiedades simples que no requieren ningún código de descriptor de acceso personalizado, considere la posibilidad de utilizar propiedades autoimplementadas. Para obtener más información, consulte Propiedades autoimplementadas (Guía de programación de C#).
Secciones relacionadas
Comparación entre propiedades e indizadores (Guía de programación de C#)
Accesibilidad del descriptor de acceso asimétrico (Guía de programación de C#)
Especificación del lenguaje C#
Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.
1.6.7.2 Propiedades
10.2.9.1 Nombres de miembros reservados para propiedades
10.7 Propiedades