Udostępnij przez


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.

Dokumentacja języka C# zawiera ostatnio wydaną wersję języka C#. Zawiera również początkową dokumentację dla funkcjonalności w publicznych wersjach testowych nadchodzącego wydania języka.

Dokumentacja identyfikuje dowolną funkcję po raz pierwszy wprowadzoną w ostatnich trzech wersjach języka lub w bieżącej publicznej wersji zapoznawczej.

Wskazówka

Aby dowiedzieć się, kiedy funkcja została po raz pierwszy wprowadzona w języku C#, zapoznaj się z artykułem dotyczącym historii wersji języka C#.

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, należy 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

Nie można używać automatycznie zaimplementowanych właściwości 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 być konieczne zaimplementowanie jednego z ciał akcesoriów. Słowo field kluczowe dodane w języku C# 14 deklaruje właściwość popartą polem. Użyj właściwości popartej polem, aby umożliwić kompilatorowi wygenerowanie jednego elementu dostępu podczas pisania drugiego. Użyj słowa kluczowego , field aby uzyskać dostęp 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");
    }
}

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ż