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


A get kulcsszó

A get kulcsszó egy olyan tulajdonság vagy indexelő kiegészítő metódusát határozza meg, amely a tulajdonság értékét vagy az indexelő elemet adja vissza. További információ: Tulajdonságok, [Automatikusan implementált tulajdonságok](.). /.. /programming-guide/classes-and-structs/automatically implemented-properties.md) és indexelők.

Olyan egyszerű esetekben, amikor egy tulajdonság get és set tartozék 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, kihasználhatja a C#-fordító automatikusan implementált tulajdonságainak támogatását. 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.

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

class TimePeriod2
{
    private double _seconds;

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

Előfordulhat, hogy az egyik tartozéktestet végre kell hajtania. 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 C# 13 előzetes verziójában előzetes verzióként hozzáadott kulcsszóval field érheti el a fordító szintetizált háttérmezőjé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.

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# nyelvi specifiká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