Megosztás:


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és Indexelők.

A C# nyelv referenciadokumentuma a C# nyelv legújabb kiadású verzióját ismerteti. Emellett a közelgő nyelvi kiadás nyilvános előzetes verziójú funkcióinak kezdeti dokumentációját is tartalmazza.

A dokumentáció azonosítja azokat a funkciókat, amelyeket először a nyelv utolsó három verziójában vagy az aktuális nyilvános előzetes verziókban vezetnek be.

Jótanács

Ha meg szeretné tudni, hogy mikor jelent meg először egy funkció a C#-ban, tekintse meg a C# nyelvi verzióelőzményeiről szóló cikket.

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, használja ki 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 illesztőtulajdonság-deklarációkhoz és a részleges tulajdonság implementálási deklarációihoz nem használhat automatikusan implementált tulajdonságokat. 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é teszi, hogy a fordító egy kiegészítőt hozzon létre, miközben kézzel írja a másikat. Használja a field C# 14-ben hozzáadott kulcsszót a fordító szintetizált háttérmezőjének eléréséhez:

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

Az alábbi példa egy nevű tulajdonsághoz gettartozó tartozékot setSeconds é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