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

Una propiedad es un miembro que ofrece un mecanismo flexible para leer, escribir o calcular el valor de un campo privado. 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, vea Restringir la accesibilidad del descriptor de acceso (Guía de programación de C#).

  • La palabra clave value se usa para definir el valor asignado por el descriptor de acceso set.

  • Las propiedades que no implementan un descriptor de acceso set son de solo 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, vea Propiedades autoimplementadas (Guía de programación de C#).

Secciones relacionadas

Especificación del lenguaje C#

Para obtener más información, vea la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también

Referencia

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

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

Conceptos

Guía de programación de C#

Diseño de propiedades