Udostępnij za pośrednictwem


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

Zobacz też