set (C#-verwijzing)
Het set
trefwoord definieert een accessormethode in een eigenschap of indexeerfunctie die een waarde toewijst aan de eigenschap of het indexeerelement. Zie Eigenschappen, Automatisch geïmplementeerde eigenschappen en Indexeerfuncties voor meer informatie en voorbeelden.
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;
}
}
}
Vaak bestaat de set
accessor uit één instructie die een waarde toewijst, zoals in het vorige voorbeeld is gedaan. U kunt de set
toegangsfunctie implementeren als een expressie-lichaamslid. In het volgende voorbeeld worden zowel de get
als de set
toegangsrechten geïmplementeerd als expressieleden.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
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.
C#-taalspecificatie
Zie de C#-taalspecificatie voor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.