set (Справочник по C#)set (C# Reference)

Ключевое слово set определяет метод доступа в свойстве или индексаторе, который присваивает значение свойству элемента индексатора.The set keyword defines an accessor method in a property or indexer that assigns a value to the property or the indexer element. Дополнительные сведения и примеры см. в разделах Свойства, Автоматически реализуемые свойства и Индексаторы.For more information and examples, see Properties, Auto-Implemented Properties, and Indexers.

В приведенном ниже примере определен как метод доступа get, так и метод доступа set для свойства с именем Seconds.The following example defines both a get and a set accessor for a property named Seconds. Для возвращения значения свойства в нем используется закрытое поле с именем _seconds.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; }
     }
}

Метод доступа set часто состоит из одного оператора, который присваивает значение, как в предыдущем примере.Often, the set accessor consists of a single statement that assigns a value, as it did in the previous example. Начиная с C# версии 7.0 метод доступа set можно реализовывать как член, воплощающий выражение.Starting with C# 7.0, you can implement the set accessor as an expression-bodied member. В приведенном ниже примере методы доступа get и set реализуются как члены, воплощающие выражение.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;
    }
}

В простых случаях, когда методы доступа get и set свойства не выполняют никаких иных операций, кроме задания или извлечения значения в закрытом поле, можно использовать поддержку автоматически реализуемых свойств в компиляторе C#.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. В приведенном ниже примере Hours реализуется как автоматически реализуемое свойство.The following example implements Hours as an auto-implemented property.

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

Спецификация языка C#C# language specification

Дополнительные сведения см. в спецификации языка C#.For more information, see the C# Language Specification. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.The language specification is the definitive source for C# syntax and usage.

См. такжеSee also