Dela via


field – Fältstödda egenskapsdeklarationer

Viktigt!

Nyckelordet field är en förhandsgranskningsfunktion i C# 13. Du måste använda .NET 9 och ange <LangVersion> elementet till preview i projektfilen för att kunna använda det kontextuella nyckelordet field .

Du bör vara försiktig med att använda nyckelordsfunktionen field i en klass som har ett fält med namnet field. Det nya field nyckelordet skuggar ett fält med namnet field i omfånget för en egenskapsåtkomst. Du kan antingen ändra namnet på variabeln field eller använda @ token för att referera till identifieraren field som @field. Du kan läsa mer genom att läsa funktionsspecifikationen för nyckelordetfield.

Det kontextuella nyckelordet field, som läggs till som en förhandsgranskningsfunktion i C# 13, kan användas i en egenskapsåtkomst för att komma åt det kompilatorsyntetiserade bakgrundsfältet för en egenskap. Med den här syntaxen kan du definiera brödtexten för en get eller set en accessor och låta kompilatorn generera den andra accessorn på samma sätt som i en automatiskt implementerad egenskap.

Tillägget av kontextuella field nyckelord ger en smidig sökväg för att lägga till fördelar, till exempel intervallkontroll till en automatiskt implementerad egenskap. Den här metoden visas i följande exempel:

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

Du kan implementera egenskapen Hours som en automatiskt implementerad egenskap. Sedan upptäcker du att du vill skydda mot ett negativt värde. Du använder field och anger intervallkontroll i set accessorn. Du behöver inte deklarera bakgrundsfältet för hand och ange en brödtext för get accessorn.

Mer information finns i artiklarna Egenskaper och indexerare .

Språkspecifikation för C#

Mer information finns i C#-språkspecifikationen. Språkspecifikationen är den slutgiltiga källan för C#-syntax och -användning.