Sdílet prostřednictvím


Klíčové slovo set (Referenční dokumentace jazyka C#)

Klíčové set slovo definuje metodu přístupového objektu ve vlastnosti nebo indexeru, která přiřadí hodnotu vlastnosti nebo prvku indexeru. Další informace a příklady naleznete v tématu Vlastnosti, Automaticky implementované vlastnosti a Indexery.

V jednoduchých případech, kdy objekty get a set přístupové objekty neprovádějí žádnou jinou operaci než nastavení nebo načtení hodnoty v privátním backingovém poli, můžete použít automaticky implementované vlastnosti. Následující příklad implementuje Hours jako automaticky implementovanou vlastnost.

class TimePeriod3
{
    public double Hours { get; set; }
}

Důležité

Automaticky implementované vlastnosti nejsou povoleny pro deklarace vlastností rozhraní ani pro implementovanou deklaraci částečné vlastnosti. Kompilátor interpretuje syntaxi odpovídající automaticky implementované vlastnosti jako deklarující deklaraci, nikoli implementační deklaraci.

Možná zjistíte, že potřebujete implementovat jedno z těl příslušenství. Klíčové field slovo přidané jako funkce preview v jazyce C# 13 deklaruje vlastnost s podporou pole. Pomocí vlastnosti s polem můžete kompilátoru nechat vygenerovat jeden přístup, zatímco píšete ručně. Klíčové slovo použijete field pro přístup k syntetizovanému záložnímu poli kompilátoru:

class TimePeriod4
{
    public double Hours {
        get;
        set => field = (value >= 0)
            ? value
            : throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
    }
}

Důležité

Klíčové field slovo je funkce preview v jazyce C# 13. Pokud chcete použít field kontextové klíčové slovo, musíte použít .NET 9 a nastavit prvek <LangVersion> do preview souboru projektu.

Měli byste být opatrní pomocí funkce klíčového field slova ve třídě, která má pole s názvem field. Nové field klíčové slovo stínuje pole pojmenované field v oboru přístupového objektu vlastnosti. Můžete změnit název field proměnné nebo pomocí @ tokenu odkazovat na field identifikátor jako @field. Další informace najdete ve specifikaci funkce pro field klíčové slovo.

Přistupování set se často skládá z jednoho příkazu, který přiřazuje hodnotu, jak tomu bylo v předchozím příkladu. Přístupové objekty můžete implementovat set jako člen s výrazem. Následující příklad implementuje jak set objekty, tak get přístupové objekty jako členy s body výrazu.

class TimePeriod2
{
    private double _seconds;

    public double Seconds
    {
        get => _seconds;
        set => _seconds = value;
    }
}

Následující příklad definuje jak a get set příslušenství pro vlastnost s názvem Seconds. Používá soukromé pole pojmenované _seconds k vrácení hodnoty vlastnosti.

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;
        }
    }
}

specifikace jazyka C#

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také