set (Referencia de C#)set (C# Reference)

La palabra clave set define un método de descriptor de acceso en una propiedad o indexador que asigna el valor de la propiedad o del elemento del indexador.The set keyword defines an accessor method in a property or indexer that assigns a value to the property or the indexer element. Para obtener más información y ejemplos, vea Propiedades, Propiedades autoimplementadas e Indexadores.For more information and examples, see Properties, Auto-Implemented Properties, and Indexers.

En el ejemplo siguiente se definen unos descriptores de acceso get y set para una propiedad denominada Seconds.The following example defines both a get and a set accessor for a property named Seconds. Usa un campo privado denominado _seconds para respaldar el valor de la propiedad.It uses a private field named _seconds to back the property value.


class TimePeriod
{
     private double _seconds;

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

A menudo, el descriptor de acceso set consta de una única instrucción que asigna un valor, como en el ejemplo anterior.Often, the set accessor consists of a single statement that assigns a value, as it did in the previous example. A partir de C# 7.0, se puede implementar el descriptor de acceso set como un miembro con forma de expresión.Starting with C# 7.0, you can implement the set accessor as an expression-bodied member. En el ejemplo siguiente se implementan los descriptores de acceso get y set como miembros con forma de expresión.The following example implements both the get and the set accessors as expression-bodied members.


class TimePeriod
{
    private double _seconds;

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

En los casos sencillos en los que los descriptores de acceso get y set de una propiedad no realizan ninguna operación aparte de establecer o recuperar un valor en un campo de respaldo privado, puede aprovechar la compatibilidad del compilador de C# con las propiedades implementadas automáticamente.For simple cases in which a property's get and set accessors perform no other operation than setting or retrieving a value in a private backing field, you can take advantage of the C# compiler's support for auto-implemented properties. En el ejemplo siguiente se implementa Hours como una propiedad implementada automáticamente.The following example implements Hours as an auto-implemented property.

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

Especificación del lenguaje C#C# language specification

Para obtener más información, consulte la Especificación del lenguaje C#.For more information, see the C# Language Specification. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.The language specification is the definitive source for C# syntax and usage.

Vea tambiénSee also