get (Referencia de C#)

La palabra clave get define un método de descriptor de acceso en una propiedad o un indizador que devuelve el valor de la propiedad o el elemento del indizador. Para obtener más información, vea Propiedades, [Propiedades implementadas automáticamente](.. /.. /programming-guide/classes-and-structs/automáticamente implemented-properties.md) e Indexadores.

En el ejemplo siguiente se definen unos descriptores de acceso get y set para una propiedad denominada Seconds. Usa un campo privado denominado _seconds para respaldar el valor de la propiedad.

class TimePeriod
{
    private double _seconds;

    public double Seconds
    {
        get { return _seconds; }
        set
        {
            if (value < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
            }
            _seconds = value;
        }
    }
}

A menudo, el descriptor de acceso get consta de una única instrucción que devuelve un valor, como en el ejemplo anterior. Puede implementar el descriptor de acceso get como un miembro con forma de expresión. En el ejemplo siguiente se implementan los descriptores de acceso get y set como miembros con forma de expresión.

class TimePeriod2
{
    private double _seconds;

    public double Seconds
    {
        get => _seconds;
        set => _seconds = value;
    }
}

Para casos sencillos en los que los descriptores de acceso y set de get una propiedad no realizan ninguna otra operación que establecer o recuperar un valor en un campo de respaldo privado, puede aprovechar la compatibilidad del compilador de C# para las propiedades implementadas automáticamente. En el ejemplo siguiente se implementa Hours como una propiedad implementada automáticamente.

class TimePeriod3
{
    public double Hours { get; set; }
}

Importante

Las propiedades implementadas automáticamente no se permiten para declaraciones de propiedad de interfaz ni para la declaración de implementación de una propiedad parcial. El compilador interpreta la sintaxis que coincide con una propiedad implementada automáticamente como declaración declarante, no como una declaración de implementación.

Especificación del lenguaje C#

Para obtener más información, consulte 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