DEV Community

Leandro Torres
Leandro Torres

Posted on • Updated on

VSCode - C# Top Level Programs

Olá Devs! 👩‍💻👨‍💻

Em alguns momentos acho interessante escrever determinados códigos em "C#" de forma isolada, assim eu direciono o meu foco somente no que estou escrevendo. Não me preocupo com uma grande aplicação, várias dependências e etc. Atenção, não estou falando de "C# Scripting", isso vou falar em outro post.

Eu utilizava o LINQPad para isso, ele é uma excelente ferramenta desktop e atende muito bem, só que uma coisa que sempre me incomodou era o fato de ter 3 ferramentas para escrever código "C#". Por padrão eu utilizo VS2019 e VSCode, o ideal era resolver esse problema com eles, seria muito interessante.

Estava lendo um post do Scott Hanselman e percebi que deixei passar uma novidade do "C# 9" que atenderia muito bem essa necessidade. A novidade, que já não é tão nova assim, é o recurso "Top Level Program".

Com esse recurso você consegue escrever o código de uma forma mais simples sem a necessidade da classe Program e do método Main. Exatamente o que eu gostaria.

Código padrão

using System;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello World!");
    }
}
Enter fullscreen mode Exit fullscreen mode

Top Level Program

using static System.Console;

WriteLine("Hello World!");
Enter fullscreen mode Exit fullscreen mode

Pode parecer uma bobagem, mas isso facilita muito, principalmente quando estou estudando ou explicando algum código para alguém. O Scott Hanselman fala do VS2019, mas pra mim seria perfeito conseguir utilizar o VSCode, fiz o teste e funciona.

Criei um repositório no github que pode servir como referência. Nele eu tenho um projeto que possui pacotes que eu julgo interessante para esse tipo de abordagem:

Se pintar mais alguma necessidade de pacote extra, eu atualizo o repositório.

Repositório

GitHub logo leandroats / vscode-csplayground

VSCode - C# Top Level Programs

Comandos utilizados para criar o projeto:

dotnet new console -n csplayground -f net5.0
dotnet add package Bogus --version 33.0.2
dotnet add package ConsoleTables --version 2.4.2
Enter fullscreen mode Exit fullscreen mode

Links e Referências:

👉 VS2019 - Visual Studio 2019
👉 VSCode
👉 LINQPad
👉 ConsoleTables
👉 Bogus
👉 Post do Thomas Claudius Huber - Bem Completo
👉 Post do "Scott Hanselman"
👉 Post do Renato Groffe

Até a próxima! 👊

Top comments (0)