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

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

Vea también

Conceptos

Guía de programación de C#

Diseño de propiedades

Referencia

Utilizar propiedades (Guía de programación de C#)

Indizadores (Guía de programación de C#)