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.