set (Справочник по C#)
Ключевое слово set
определяет метод доступа в свойстве или индексаторе, который присваивает значение свойству элемента индексатора. Дополнительные сведения и примеры см. в разделах Свойства, Автоматически реализуемые свойства и Индексаторы.
В приведенном ниже примере определен как метод доступа get
, так и метод доступа set
для свойства с именем Seconds
. Для возвращения значения свойства в нем используется закрытое поле с именем _seconds
.
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;
}
}
}
Метод доступа set
часто состоит из одного оператора, который присваивает значение, как в предыдущем примере. Метод доступа set
можно реализовывать как элемент, воплощающий выражение. В приведенном ниже примере методы доступа get
и set
реализуются как члены, воплощающие выражение.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
В простых случаях, когда методы доступа get
и set
свойства не выполняют никаких иных операций, кроме задания или извлечения значения в закрытом поле, можно использовать поддержку автоматически реализуемых свойств в компиляторе C#. В приведенном ниже примере Hours
реализуется как автоматически реализуемое свойство.
class TimePeriod3
{
public double Hours { get; set; }
}
Внимание
Автоматически реализованные свойства не допускаются для объявлений свойств интерфейса или частичных объявлений свойств. В обоих случаях компилятор интерпретирует синтаксис, соответствующий автоматически реализованному свойству в качестве объявления, а не реализующего объявления.
Спецификация языка C#
Дополнительные сведения см. в спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.