Het get
-trefwoord
Het get
trefwoord definieert een accessormethode in een eigenschap of indexeerfunctie die de eigenschapswaarde of het indexeerelement retourneert. Zie Eigenschappen, Eigenschappenautomatisch geïmplementeerd en Indexeerfunctiesvoor meer informatie.
Voor eenvoudige gevallen waarin de get
eigenschappen en set
accessors van een eigenschap geen andere bewerking uitvoeren dan het instellen of ophalen van een waarde in een privébackingveld, kunt u profiteren van de ondersteuning van de C#-compiler voor automatisch geïmplementeerde eigenschappen. In het volgende voorbeeld wordt geïmplementeerd Hours
als een automatisch geïmplementeerde eigenschap.
class TimePeriod3
{
public double Hours { get; set; }
}
Belangrijk
Automatisch geïmplementeerde eigenschappen zijn niet toegestaan voor declaraties van interface-eigenschappen of de implementatiedeclaratie voor een gedeeltelijke eigenschap. De compiler interpreteert syntaxis die overeenkomt met een automatisch geïmplementeerde eigenschap als de declaratie, niet als een implementatiedeclaratie.
Vaak bestaat de get
accessor uit één instructie die een waarde retourneert, zoals in het vorige voorbeeld is gedaan. U kunt de get
toegangsfunctie implementeren als een expressie-lichaamslid. In het volgende voorbeeld worden zowel de get
als de set
toegangsfunctie geïmplementeerd als expressie-lichaamsleden.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
Het kan zijn dat u een van de toegangsorganen moet implementeren. U kunt een eigenschap met veldsteun gebruiken om de compiler één accessor te laten genereren terwijl u de andere met de hand schrijft. U gebruikt het field
trefwoord, toegevoegd als preview-functie in C# 13, voor toegang tot het gesynthetiseerde back-upveld van de compiler:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
Belangrijk
Het field
trefwoord is een preview-functie in C# 13. U moet .NET 9 gebruiken en het <LangVersion>
element preview
instellen op in uw projectbestand om het field
contextuele trefwoord te kunnen gebruiken.
Wees voorzichtig met het gebruik van de trefwoordfunctie in een klasse met een veld met de field
naam field
. Het nieuwe field
trefwoord schaduwt een veld met de naam field
in het bereik van een eigenschapstoegangsor. U kunt de naam van de field
variabele wijzigen of het @
token gebruiken om naar de field
id te verwijzen.@field
Meer informatie vindt u door de functiespecificatie voor het field
trefwoord te lezen.
In het volgende voorbeeld worden zowel een get
als een set
toegangsfunctie gedefinieerd voor een eigenschap met de naam Seconds
. Er wordt een privéveld gebruikt dat de eigenschapswaarde _seconds
back-up maakt.
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#-taalspecificatie
Zie de C#-taalspecificatie voor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.