Delen via


Het trefwoord instellen (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.

Voor eenvoudige gevallen waarin de eigenschappen en set accessors van een eigenschap get geen andere bewerking uitvoeren dan het instellen of ophalen van een waarde in een privébackingveld, kunt u automatisch geïmplementeerde eigenschappen gebruiken. 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.

Het kan zijn dat u een van de toegangsorganen moet implementeren. Het field trefwoord, toegevoegd als preview-functie in C# 13, declareert een eigenschap waarvan een veld wordt ondersteund. 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 voor toegang tot het gesynthetiseerde backingveld 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.

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;
    }
}

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.

Zie ook