field
- Deklaracje właściwości z kopią zapasową pola
Ważne
Słowo field
kluczowe jest funkcją w wersji zapoznawczej w języku C# 13. Musisz użyć platformy .NET 9 i ustawić element <LangVersion>
na preview
w pliku projektu, aby użyć field
kontekstu słowa kluczowego.
Należy zachować ostrożność przy użyciu funkcji słowa kluczowego field
w klasie, która ma pole o nazwie field
. Nowe field
słowo kluczowe cieniuje pole o nazwie field
w zakresie metody dostępu właściwości. Możesz zmienić nazwę zmiennej field
lub użyć tokenu @
, aby odwołać się do identyfikatora field
jako @field
. Aby dowiedzieć się więcej, przeczytaj specyfikację funkcji słowa kluczowego field
.
Kontekstowe słowo kluczowe field
, dodane jako funkcja w wersji zapoznawczej w języku C# 13, może służyć w metodzie dostępu do właściwości w celu uzyskania dostępu do syntetyzowanego pola kopii zapasowej właściwości kompilatora. Ta składnia umożliwia zdefiniowanie treści metody get
lub set
metody dostępu i umożliwienie kompilatorowi wygenerowania innej metody dostępu, tak jak w przypadku automatycznie zaimplementowanej właściwości.
Dodanie field
słów kluczowych kontekstowych zapewnia płynną ścieżkę do dodawania korzyści, takich jak sprawdzanie zakresu do automatycznie zaimplementowanej właściwości. Ta praktyka jest pokazana w poniższym przykładzie:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
Właściwość można zaimplementować Hours
jako automatycznie zaimplementowaną właściwość. Następnie odkryjesz, że chcesz chronić przed wartością ujemną. Używasz field
metody i podajesz sprawdzanie zakresu w metodzie set
dostępu. Nie musisz deklarować pola zaplecza ręcznie i zapewnić ciało dla akcesoriów get
.
Aby uzyskać więcej informacji, zobacz artykuły Właściwości i indeksatory .
specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.