Słowo kluczowe get
Słowo get
kluczowe definiuje metodę dostępu we właściwości lub indeksatorze, która zwraca wartość właściwości lub element indeksatora. Aby uzyskać więcej informacji, zobacz Właściwości [Automatycznie zaimplementowane właściwości](.. /.. /programming-guide/classes-and-structs/automatically implemented-properties.md) i Indexers.
W prostych przypadkach, w których właściwości get
i set
metody dostępu nie wykonują żadnej innej operacji niż ustawianie lub pobieranie wartości w prywatnym polu pomocniczym, można skorzystać z obsługi kompilatora języka C# dla automatycznie zaimplementowanych właściwości. Poniższy przykład implementuje Hours
jako automatycznie zaimplementowaną właściwość.
class TimePeriod3
{
public double Hours { get; set; }
}
Ważne
Automatycznie zaimplementowane właściwości nie są dozwolone dla deklaracji właściwości interfejsu ani deklaracji implementowania dla właściwości częściowej. Kompilator interpretuje składnię zgodną z automatycznie zaimplementowaną właściwością jako deklarację deklaratywną, a nie deklarację implementującą.
Często metoda dostępu składa się z pojedynczej instrukcji, get
która zwraca wartość, tak jak w poprzednim przykładzie. Metodę get
dostępu można zaimplementować jako element członkowski z wyrażeniem. Poniższy przykład implementuje zarówno metodę get
, jak i metodę set
dostępu jako składowe wyrażeń.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
Może się okazać, że trzeba zaimplementować jedną z jednostek dostępu. Możesz użyć właściwości popartej polem, aby umożliwić kompilatorowi wygenerowanie jednego elementu dostępu podczas pisania drugiego. Aby uzyskać dostęp do syntetyzowanego pola kopii zapasowej, użyj field
słowa kluczowego dodanego jako funkcji w wersji zapoznawczej w języku C# 13:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
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
.
W poniższym przykładzie zdefiniowano metodę get
i metodę set
dostępu dla właściwości o nazwie Seconds
. Używa pola prywatnego o nazwie _seconds
, aby przywrócić wartość właściwości.
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;
}
}
}
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#.