Novidades do C# 8.0: Switch Expressions

Renato Groffe
3 min readMar 25, 2019

--

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:

C# 7.0: Pattern Matching

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:

Novidades do C# 7.1

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.

--

--

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

Responses (1)