O que é a palavra-chave field no C# 13?
- Develop4Us
- 13 de mar.
- 2 min de leitura
O C# 13 trouxe uma nova palavra-chave chamada field, que facilita o acesso ao campo de suporte gerado pelo compilador dentro de propriedades. Com essa novidade, não é mais necessário criar um campo privado manualmente para armazenar o valor da propriedade.
Esse recurso torna o código mais simples e legível, eliminando a necessidade de variáveis adicionais.
Por que usar a palavra-chave field?
Antes do C# 13, ao criar uma propriedade com lógica no get ou set, era necessário declarar um campo privado para armazenar o valor, como no exemplo abaixo:
public class Produto_JeitoAntigo
{
private decimal _preco;
public decimal Preco
{
get => _preco;
set => _preco = value >= 0 ? value : throw new ArgumentOutOfRangeException(nameof(value), "O preço não pode ser negativo.");
}
}
Agora, com o field, podemos acessar diretamente o campo de suporte gerado automaticamente, sem precisar criar _preco manualmente:
public class Produto
{
public decimal Preco
{
get => field;
set => field = value >= 0 ? value : throw new ArgumentOutOfRangeException(nameof(value), "O preço não pode ser negativo.");
}
}
Vantagens do field
✔ Código mais limpo – Elimina a necessidade de declarar variáveis privadas para armazenar valores.
✔ Facilidade de manutenção – Reduz a complexidade, tornando as propriedades mais fáceis de entender.
✔ Menos código repetitivo – Não é mais necessário criar manualmente um campo para cada propriedade.
Cuidados ao Usar field
⚠ Não pode ser usado fora da propriedade – O field só funciona dentro dos acessadores get e set.
⚠ Possível conflito de nomes – Se uma classe já tiver uma variável chamada field, pode ser necessário renomeá-la para evitar conflitos.
⚠ Recurso em versão prévia – Esse recurso pode precisar ser ativado no arquivo de configuração do projeto para ser usado (arquivo .csproj).
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>Preview</LangVersion>
</PropertyGroup>
</Project>
Quando Usar field?
✅ Quando precisar de lógica no get ou set sem criar um campo privado.
✅ Quando quiser reduzir código repetitivo em classes com muitas propriedades.
✅ Quando precisar validar ou modificar valores dentro da propriedade de forma simples.
Esse recurso facilita o desenvolvimento e melhora a legibilidade do código, tornando as propriedades mais intuitivas e organizadas.