Delen via


field - Declaraties van eigenschappen met veldsteun

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.

Het contextuele trefwoord field, toegevoegd als preview-functie in C# 13, kan worden gebruikt in een eigenschapstoegangsfunctie voor toegang tot het gesynthetiseerde back-upveld van een eigenschap. Met deze syntaxis kunt u de hoofdtekst van een get of set accessor definiëren en de compiler de andere toegangsfunctie laten genereren zoals in een automatisch geïmplementeerde eigenschap.

De toevoeging van de field contextuele trefwoorden biedt een soepel pad om voordelen zoals bereikcontrole toe te voegen aan een automatisch geïmplementeerde eigenschap. Deze procedure wordt weergegeven in het volgende voorbeeld:

class TimePeriod4
{
    public double Hours {
        get;
        set => field = (value >= 0)
            ? value
            : throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
    }
}

U kunt de Hours eigenschap implementeren als een automatisch geïmplementeerde eigenschap. Vervolgens ontdekt u dat u zich wilt beschermen tegen een negatieve waarde. U gebruikt field en verstrekt bereikcontrole in de set accessor. U hoeft het backingveld niet handmatig te declareren en een hoofdtekst voor de get accessor op te geven.

Zie de artikelen eigenschappen en indexeerfuncties voor meer informatie.

C#-taalspecificatie

Zie de C#-taalspecificatie voor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.