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 Seconds
tartozó 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.