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 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
.
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# 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.