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 field
egy 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 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;
}
}
}
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.