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


set (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.

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

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

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.

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