Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Ключевое слово
Ключевое слово get
определяет метод доступа в свойстве или индексаторе, который возвращает значение свойства или элемент индексатора. Дополнительные сведения см. в свойства, автоматически реализуемые свойстваи индексаторы.
В простых случаях, когда свойства get
и set
методы доступа не выполняют никаких других операций, кроме установки или извлечения значения в закрытом поле резервного копирования, можно воспользоваться поддержкой компилятора C# для автоматически реализованных свойств. В следующем примере реализуется Hours
как автоматически реализованное свойство.
class TimePeriod3
{
public double Hours { get; set; }
}
Внимание
Автоматически реализованные свойства не допускаются для объявлений свойств интерфейса или реализации объявления для частичного свойства. Компилятор интерпретирует синтаксис, соответствующий автоматически реализованному свойству, как объявление объявления, а не объявление реализации.
Метод доступа get
часто состоит из одного оператора, который возвращает значение, как в предыдущем примере. Метод доступа get
можно реализовывать как элемент, воплощающий выражение. В приведенном ниже примере методы доступа get
и set
реализуются как члены, воплощающие выражение.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
Возможно, вам потребуется реализовать один из органов доступа. Свойство с поддержкой поля позволяет компилятору создавать один метод доступа во время записи с другой стороны. Ключевое field
слово, добавленное в качестве предварительной версии функции в C# 13, используется для доступа к полю синтезированной резервной копии компилятора:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
Внимание
Ключевое field
слово — это предварительная версия функции в C# 13. Для использования контекстного ключевого <LangVersion>
слова необходимо использовать .NET 9 и задать preview
элемент field
в файле проекта.
Следует тщательно использовать функцию field
ключевого слова в классе с именем field
поля. Новое field
ключевое слово тенирует поле с именем field
в области доступа к свойствам. Можно изменить имя переменной field
или использовать @
маркер для ссылки на field
идентификатор как @field
. Дополнительные сведения см. в спецификации компонента для ключевого field
слова.
В приведенном ниже примере определен как метод доступа 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;
}
}
}
Спецификация языка C#
Дополнительные сведения см. в спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.