Novidades do C# 12: acessando instance members com nameof

Renato Groffe
3 min readJul 16, 2023

--

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.
Clique nesta imagem para visualizar com uma melhor resolução

Ao incluir o attributo LangVersion com o valor preview no arquivo .csproj do projeto de testes:

Esses problemas serão então solucionados:

Clique nesta imagem para visualizar com uma melhor resolução

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:

Clique nesta imagem para visualizar com uma melhor resolução

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

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker