Udostępnij za pośrednictwem


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#.

Zobacz też