Novidades do C# 8.0: Switch Expressions
Uma das novidades trazidas pelo C# 7.0 foi o recurso conhecido como Pattern Matching, funcionalidade concebida com o intuito de eliminar a necessidade de codificação de um typecast e contribuir assim para a obtenção de um código mais limpo e direto. Já abordei isso inclusive no seguinte artigo:
O C# 7.1 ampliou as possibilidades envolvendo Pattern Matching, ao suportar também o uso de tipos genéricos com esta funcionalidade. Apresentei no artigo a seguir também essa novidade em detalhes:
Já o C# 8.0 expandiu ainda mais o escopo de utilização no que se refere a Pattern Matching, sendo possível destacar agora a introdução das switch expressions.
OBSERVAÇÃO: para os testes descritos neste artigo foram utilizados o Visual Studio 2019 Preview 4.3 e o .NET Core 3.0 Preview 3.
Supondo um bloco de código como o apresentado na listagem a seguir (com o enum FiguraGeometrica e a classe estática Area), em que se faz uso das instruções switch, case e default dentro de um método:
Empregando switch expressions este código ficará bem mais simplificado, conforme observado na próxima listagem (em que consta uma versão refatorada do tipo Area):
- Foi dispensado o uso de case, com o valor a ser analisado seguido por => e pela expressão de retorno;
- O uso da palavra-chave default foi substituído por _.
A listagem a seguir traz um exemplo de uso da classe Area e do enum FiguraGeometrica:
Como resultado da execução desta aplicação teremos:
Deixo aqui os links com os demais artigos que já publiquei sobre as novidades do C# 8.0 e do Visual Studio 2019:
Visual Studio 2019 e .NET Core 3: primeiros testes
Novidades do C# 8.0: como habilitar, Ranges e Indices
Novidades do C# 8.0: Nullable Reference Types
Visual Studio 2019: Preview 2.1 e novidades no debugging de Console Applications
.NET Core 3 Preview 3, VS 2019 Release Candidate, Using Declarations no C# 8.0
Novidades do C# 8.0: Static Local Functions
E também gravação do hangout que aconteceu dia 06/03 (quarta-feira) no Canal .NET, na qual abordei novidades envolvendo o .NET Core 2.2, o ASP.NET Core 2.2, o .NET Core 3.0, o ASP.NET Core 3.0 e o Visual Studio 2019:
Por último deixo aqui um convite.
Dia 26/03/2019 (terça-feira) às 21:00 — horário de Brasília — teremos mais um evento online no Canal .NET. Desta vez serão 2 apresentações, abordando o uso avançado do NHibernate em aplicações .NET e a integração automatizada de dados empregando o Apache NIFI.
Para efetuar a sua inscrição acesse a página do evento no Meetup. A transmissão acontecerá via YouTube, em um link a ser divulgado em breve.