Słowo kluczowe set (odwołanie w C#)
Słowo set
kluczowe definiuje metodę dostępu we właściwości lub indeksatorze, która przypisuje wartość do właściwości lub elementu indeksatora. Aby uzyskać więcej informacji i przykładów, zobacz Właściwości, Automatycznie zaimplementowane właściwości i Indeksatory.
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 użyć 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ą.
Może się okazać, że trzeba zaimplementować jedną z jednostek dostępu. Słowo field
kluczowe dodane jako funkcja w wersji zapoznawczej w języku C# 13 deklaruje właściwość popartą polem. Możesz użyć właściwości popartej polem, aby umożliwić kompilatorowi wygenerowanie jednego elementu dostępu podczas pisania drugiego. Słowo kluczowe służy do uzyskiwania field
dostępu do pola kopii zapasowej syntetyzowanego kompilatora:
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
.
set
Często akcesorium składa się z pojedynczej instrukcji, która przypisuje wartość, tak jak w poprzednim przykładzie. Metodę set
dostępu można zaimplementować jako element członkowski z wyrażeniem. W poniższym przykładzie zaimplementowano zarówno metody dostępu, get
jak i set
jako składowe wyrażeń.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
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#.