Novidades do C# 14: Null-conditional assignment
Neste novo artigo darei início a uma série sobre novidades do C# 14, cujo lançamento oficial está previsto para Novembro/2024 — juntamente com o .NET 10.
Essa primeira postagem abordará um exemplo da funcionalidade Null-conditional assignment, que permite associar um valor a uma propriedade ou field apenas se a instância correspondente não estiver nula. Conseguiremos assim com esta nova capacidade dispensar o uso de ifs, que seriam empregados para verificar se uma instância está ou não preenchida (diferente de null).
Tomando por exemplo a implementação da classe Produto:
Antes do C# 14 deveríamos realizar uma checagem, a fim de garantir que uma instância não seja nula (produto, neste exemplo):
if (produto is not null)
produto.Preco += produto.Preco * percentual / 100;
Com o C# 14 este tipo de verificação não é mais necessário, bastando apenas a utilização do operador ?. (null-conditional operator):
produto?.Preco += produto?.Preco * percentual / 100;
Esta capacidade foi empregada em uma Console Application que disponibilizei no GitHub:
https://github.com/renatogroffe/DotNet10-ConsoleApp-NullConditionalAssignment
Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!
O arquivo .csproj deste projeto foi configurado com o valor preview em LangVersion:
Já a próxima listagem demonstra o uso de Null-conditional assignment no método AplicarReajuste (linha 34):
É importante destacar aqui a presença da cláusula # pragma warning disable CS8625 no início do código, suprimindo erros de compilação que aconteceriam ao manipular instâncias nulas:
O resultado da execução desta aplicação está na imagem seguinte: