Novidades do C# 12: utilizando um alias para referenciar um tipo
A Microsoft anunciou na última terça-feira (11/04) alguns recursos previstos para o C# 12, a nova versão da linguagem com lançamento previsto para ocorrer em conjunto com o .NET 8 no final de 2023. Maiores informações podem ser encontradas em postagem oficial no blog da plataforma .NET:
Assim como fiz em versões anteriores, com este novo artigo inicio uma série sobre novidades que integram o C# 12. Neste primeiro post demonstrarei a possibilidade de utilização de aliases (“apelidos”) para tipos, empregando para isto a diretiva using.
Foi necessário ativar o suporte a recursos em modo Preview no arquivo .csproj do projeto que criei para testes, fazendo uso neste caso do atributo LangVersion:
Esse exemplo também foi disponibilizado no GitHub (baseando-se no Preview 3 do .NET 8):
https://github.com/renatogroffe/CSharp12-AliasesTypes
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!
Na implementação da classe estática Testes utilizei 2 aliases:
- ConversoesFahrenheit, um array do tipo primitivo double declarado através da diretiva using (linha 1). Este alias será então usado na assinatura do método ConverterTemperaturas (linha 9), o qual exibirá resultados da conversão de diversas temperaturas em Fahrenheit para as escalas Celsius e Kelvin;
- CalculoIMC, que nada mais é do que uma tupla formada pelas propriedades Peso e Altura (ambas do tipo double — linha 2). O método CalcularIMC (linha 23) utiliza esse alias, calculando o IMC (Índice de Massa Corpórea) e determinando ainda a classificação de peso para uma pessoa.
O próprio IntelliSense no Visual Studio 2022 (utilizei aqui a versão 17.6.0 Preview 3.0) será capaz de prever a presença dos aliases, exibindo como dica os tipos aos quais os mesmos se referem. Podemos observar isso com o método ConverterTemperaturas:
E também com chamadas ao método CalcularIMC:
Na próxima listagem temos o código para o arquivo Program.cs, utilizando os métodos ConverterTemperaturas (recebendo um array do tipo double) e CalcularIMC (5 chamadas recebendo como parâmetro tuplas) que foram definidos na classe Testes:
O resultado da execução desta aplicação de exemplo está na imagem seguinte:
Caso você que está lendo queira saber mais sobre outras novidades do .NET 8, deixo aqui os links de artigos que já publiquei sobre a nova versão prevista para a plataforma .NET:
.NET 8: primeiros testes com o Preview 1 + melhorias na desserialização JSON
Novidades do .NET 8: definindo valores possíveis com AllowedValuesAttribute