field
- Declarações de propriedade com suporte de campo
Importante
A field
palavra-chave é um recurso de visualização no C# 13. Você deve estar usando o .NET 9 e definir seu <LangVersion>
elemento como preview
no arquivo de projeto para usar a field
palavra-chave contextual.
Você deve ter cuidado ao usar o recurso de field
palavra-chave em uma classe que tenha um campo chamado field
. A nova field
palavra-chave sombreia um campo nomeado field
no escopo de um acessador de propriedade. Você pode alterar o nome da field
variável ou usar o @
token para fazer referência ao field
identificador como @field
. Você pode saber mais lendo a especificação do recurso para a field
palavra-chave.
A palavra-chave field
contextual , adicionada como um recurso de visualização no C# 13, pode ser usada em um acessador de propriedade para acessar o campo de suporte sintetizado do compilador de uma propriedade. Essa sintaxe permite que você defina o corpo de um get
acessador or set
e permita que o compilador gere o outro acessador como faria em uma propriedade implementada automaticamente.
A adição das palavras-chave contextuais fornece um caminho suave para adicionar benefícios, como verificação de intervalo, a uma propriedade implementada field
automaticamente. Essa prática é mostrada no exemplo a seguir:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
Você pode implementar a propriedade como uma propriedade implementada Hours
automaticamente. Então, você descobre que deseja se proteger contra um valor negativo. Você usa field
e fornece verificação de intervalo no set
acessador. Você não precisa declarar o campo de suporte manualmente e fornecer um corpo para o get
acessador.
Para obter mais informações, confira os artigos Propriedades e Indexadores.
Especificação da linguagem C#
Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.