Novidades do C# 11: melhorias no uso de nameof
O uso do operador nameof em versões anteriores do C# apresenta uma limitação: a impossibilidade de referenciarmos parâmetros de um método em expressões utilizadas com Attributes.
No exemplo da imagem a seguir temos a tentativa de definir uma rota em uma Action, a qual receberia por meio do parâmetro temperatura um valor em graus Fahrenheit para conversão. A expressão nameof associada ao atributo HttpGet resultará em um erro de compilação:
Essa restrição foi superada com o lançamento do C# 11. A próxima listagem traz este mesmo exemplo de API REST já convertido para o .NET 7 e empregando a expressão nameof (linha 17), seguida por uma execução de build que apresentou sucesso:
Ao executarmos esse projeto e acessarmos a interface gráfica do Swagger/OpenAPI notaremos o termo temperatura como parâmetro/parte do endpoint, graças a esta nova capacidade envolvendo o uso do parâmetro nameof:
Este exemplo foi disponibilizado no GitHub:
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!