Novidades do C# 9: Top Level Programs

Renato Groffe
2 min readJun 25, 2020

--

Neste quarto artigo da série sobre novidades do C# 9 abordarei o recurso denominado Top Level Program, nova funcionalidade que permite substituir as declarações típicas da classe Program (incluindo o método Main) por um conjunto de instruções mais simples.

Caso não tenha ainda visualizado algum artigo da série ou, até mesmo, deseje rever algum destes conteúdos seguem os links:

Novidades do C# 9: Relational Patterns

Novidades do C# 9: o operador is not

Novidades do C# 9: new expressions

Para os testes descritos neste artigo utilizei o Preview 5 do .NET 5, além do Visual Studio 2019 16.7.0 Preview 3.0.

Supondo um exemplo de implementação da classe Program como o indicado na listagem a seguir:

Podemos simplificar em muito a codificação, implementando esta aplicação como um Top Level Program:

  • A estrutura típica da classe Program com seu método Main pode ser omitida;
  • É possível inclusive o uso de construções como async ou mesmo produzir um retorno indicando o sucesso (ou não) na execução do código.;
  • Não existe a obrigatoriedade de que o arquivo .cs tenha por nome Program.cs.

Na imagem a seguir podemos observar o resultado da execução deste código, com o mesmo declarado em um arquivo chamado TesteTopLevel.cs:

Ressalto ainda que para ativar o uso do C# 9.0 será necessário preencher o item LangVersion com o valor preview no arquivo .csproj:

E concluo este post com um convite…

Dia 14/09/2020 (segunda) a partir das 21:00 — horário de Brasília — teremos uma live no Canal .NET cobrindo estas e outras novidades do C# 9. O evento será ONLINE e GRATUITO, com transmissão pelo YouTube.

Para participar faça sua inscrição no meetup:

https://bit.ly/live-csharp9-canaldotnet

--

--

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