Novidades do C# 12: utilizando um alias para referenciar um tipo

Renato Groffe
3 min readApr 17, 2023

--

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 doublelinha 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:

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

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

--

--

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

No responses yet