Поделиться через


field — объявления свойств с поддержкой полей

Внимание

Ключевое field слово — это предварительная версия функции в C# 13. Для использования контекстного ключевого field слова необходимо использовать .NET 9 и задать <LangVersion> элемент preview в файле проекта.

Следует тщательно использовать функцию field ключевого слова в классе с именем fieldполя. Новое field ключевое слово тенирует поле с именем field в области доступа к свойствам. Можно изменить имя переменной field или использовать @ маркер для ссылки на field идентификатор как @field. Дополнительные сведения см. в спецификации компонента для ключевого field слова.

Контекстное ключевое слово field, добавленное как предварительная версия функции в C# 13, можно использовать в методе доступа к свойству для доступа к синтезированному полю резервной копии свойства компилятором. Этот синтаксис позволяет определить тело get или метод доступа и set позволить компилятору создать другой метод доступа, так как он будет автоматически реализован в свойстве.

Добавление field контекстных ключевых слов обеспечивает гладкий путь для добавления преимуществ, таких как проверка диапазона в автоматически реализованное свойство. Эта практика показана в следующем примере:

class TimePeriod4
{
    public double Hours {
        get;
        set => field = (value >= 0)
            ? value
            : throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
    }
}

Свойство можно реализовать Hours как автоматически реализованное свойство. Затем вы обнаружите, что хотите защититься от отрицательного значения. Вы используете field и предоставляете проверку диапазона в методе set доступа. Не нужно объявлять поле резервного копирования вручную и предоставлять текст для get метода доступа.

Дополнительные сведения см. в статьях Свойства и Индексаторы.

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

Дополнительные сведения см. в спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.