Novidades do C# 12: acessando instance members com nameof
Com o Preview 6 do .NET 8 novas funcionalidades previstas do C# 12 foram liberadas para testes. Uma dessas novidades está na possibilidade de uso do operador nameof com membros de uma classe, permitindo que expressões que envolvam essas estruturas sejam empregadas em atributos, valores que inicializam propriedades ou acessando elementos estáticos.
Tomando como exemplo a classe NameOfTests:
Se não ativarmos o uso de recursos em Preview no Visual Studio 2022 ocorrerão erros, como indicados na imagem a seguir:
- A tentativa de acessar a propriedade Length da propriedade Nome com nameof em Test02 produziu um erro de compilação;
- O mesmo vale para a propriedade MaxValue do membro estático AnoAtual em Test04;
- E ao uso da propriedade Length de Observacao com o atributo Description em Test05.
Ao incluir o attributo LangVersion com o valor preview no arquivo .csproj do projeto de testes:
Esses problemas serão então solucionados:
Em Program.cs instanciei a classe NameOfTests, realizando posteriormente uma chamada ao método PrintTestResults:
O resultado da execução desta Console Application pode ser observado na próxima imagem:
Este exemplo foi disponibilizado no GitHub:
https://github.com/renatogroffe/CSharp12-NameOfInstanceMembers
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!
E concluo este artigo com um convite…
Acompanhe neste novo evento ONLINE e GRATUITO no Canal .NET dicas, truques e alternativas úteis para o desenvolvimento Back-End e de APIs REST com .NET 7, C#, ASP.NET Core e Azure Functions. Ao longo da apresentação será coberto o uso de diferentes frameworks, serviços na nuvem, mensageria e boas práticas de forma a facilitar e tornar mais dinâmica a implementação de soluções baseadas na plataforma .NET no seu dia a dia.
Teremos também novidades do .NET 8 e C# 12 demonstradas na prática!
Quando: 26/07/2023 (quarta) a partir das 21:00 — horário de Brasília
Faça sua inscrição em:
https://bit.ly/live-backend-dotnet-jul-2023