Megosztás a következőn keresztül:


A beállított kulcsszó (C#-referencia)

A set kulcsszó olyan kiegészítő metódust határoz meg egy tulajdonságban vagy indexelőben, amely egy értéket rendel a tulajdonsághoz vagy az indexelő elemhez. További információkért és példákért lásd a Tulajdonságok, az Automatikusan implementált tulajdonságok és az Indexelők című témakört.

Olyan egyszerű esetekben, amikor egy tulajdonság get és set tartozéka nem hajt végre más műveletet, mint egy érték beállítása vagy lekérése egy privát háttérmezőben, használhatja az automatikusan implementált tulajdonságokat. Az alábbi példa automatikusan implementált tulajdonságként implementál Hours .

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

Fontos

Az automatikusan implementált tulajdonságok nem engedélyezettek az interfésztulajdonság-deklarációkhoz vagy a részleges tulajdonság implementálási deklarációihoz. A fordító az automatikusan implementált tulajdonságnak megfelelő szintaxist deklaráló deklarációként értelmezi, nem implementáló deklarációként.

Előfordulhat, hogy az egyik tartozéktestet végre kell hajtania. A field C# 13 előzetes verzióban hozzáadott kulcsszó egy mező által támogatott tulajdonságot deklarál. Mezőháttér-tulajdonság használatával lehetővé teheti, hogy a fordító egy kiegészítőt hozzon létre, miközben kézzel írja a másikat. A kulcsszóval field elérheti a fordító szintetizált háttérmezőt:

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

Fontos

A field kulcsszó egy előzetes verziójú funkció a C# 13-ban. A környezetfüggő kulcsszó használatához a .NET 9-et kell használnia, és be kell állítania <LangVersion> az elemet preview a field projektfájlban.

Körültekintően használja a field kulcsszó funkciót egy olyan osztályban, amelynek neve fieldegy mező. Az új field kulcsszó árnyékot ad egy tulajdonság-tartozék hatókörében elnevezett field mezőnek. Módosíthatja field a változó nevét, vagy a @ jogkivonat használatával hivatkozhat az field azonosítóra @field. További információkért olvassa el a kulcsszó funkciós specifikációjátfield.

A kiegészítő gyakran egyetlen utasításból áll, set amely egy értéket rendel hozzá, ahogyan az előző példában is tette. A kiegészítőt set kifejezési testű tagként implementálhatja. Az alábbi példa kifejezési testű tagként implementálja a get tartozékokat és a set tartozékokat is.

class TimePeriod2
{
    private double _seconds;

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

Az alábbi példa egy nevű tulajdonsághoz Secondstartozó tartozékot get set és tartozékot is definiál. A tulajdonság értékének visszaadásához egy elnevezett _seconds magánmezőt használ.

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

C# nyelvspecifikáció

További információkért lásd a C# nyelvi specifikációját. A nyelvi specifikáció a C#-szintaxis és -használat végleges forrása.

Lásd még