códigomadrugada

c#iniciantes.nettutorial

Seu primeiro programa em C#: Hello World do zero

Passo a passo pra criar e rodar seu primeiro programa em C# no Visual Studio 2022. Inclui o clássico Hello World e uma variação com entrada do usuário.

Dev iniciante criando seu primeiro programa em C# no Visual Studio, à luz de um abajur, com xícara de café ao lado
Código da Madrugada3 de maio de 20267 min de leitura

Você abriu o Visual Studio, criou um projeto Console App e tem um arquivo Program.cs aberto. Aquele código que apareceu: o que ele faz? Por que tem tanto texto pra um programa que imprime uma linha?

Aqui vai a explicação completa, passo a passo, sem pular nada.

Pré-requisitos antes de começar

Pra seguir esse tutorial, você vai precisar de:

  • Visual Studio 2022 Community (gratuito) com o workload "Desenvolvimento para desktop com .NET" instalado
  • .NET 8 SDK (instalado automaticamente junto com o Visual Studio)

Se ainda não tem o ambiente configurado, veja o guia de instalação do Visual Studio 2022 e .NET no Windows antes de continuar.

E se ainda não sabe o que é C# ou pra que ele serve no mercado, o artigo o que é C# e por que aprender dá o contexto todo.

Criando o projeto Console App no Visual Studio

Abra o Visual Studio e siga os passos:

  1. Clique em Criar novo projeto
  2. Na barra de busca, escreva "Console" e selecione Aplicativo de Console. Confirme que a linguagem indicada é C# (o mesmo template existe pra Visual Basic; não confunda)
  3. Clique em Próximo, dê um nome ao projeto (PrimeiroProgramaCS funciona bem) e escolha onde salvar
  4. Em "Framework", selecione .NET 8.0 e clique em Criar

O Visual Studio cria a estrutura do projeto e abre o Program.cs automaticamente.

O código que apareceu: duas versões possíveis

Dependendo da versão do template configurada, você vai ver uma de duas versões.

Versão moderna: top-level statements

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

Esse formato chegou no .NET 6 com C# 10. O compilador identifica que tudo fora de uma classe é o ponto de entrada do programa, então não é preciso declarar Main explicitamente.

Versão clássica: com namespace, classe e Main

using System;

namespace PrimeiroProgramaCS
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

Os dois formatos geram o mesmo executável. Mas entender o formato clássico ajuda a compreender o que o moderno está escondendo.

Linha por linha:

  • using System;: importa o namespace System, onde fica a classe Console. Sem essa linha, você precisaria escrever System.Console.WriteLine(...). O using é um atalho.
  • namespace PrimeiroProgramaCS: agrupa o código num espaço de nomes, evitando conflitos quando o projeto cresce e você tem muitas classes com nomes parecidos.
  • class Program: em C#, todo código executável precisa estar dentro de uma classe. Program é só o nome padrão do template.
  • static void Main(string[] args): o ponto de entrada. O .NET procura por esse método quando você executa o programa. static indica que o método pertence à classe, não a um objeto. void indica que não retorna nada. string[] args permite receber argumentos via linha de comando.
  • Console.WriteLine("Hello, World!");: o único comando que faz algo visível: escreve o texto no console e quebra a linha.

Com o tempo isso vai soar natural. Por enquanto, leia como "estrutura necessária; código de verdade fica dentro do Main".

O que é Console.WriteLine

Console é uma classe da biblioteca padrão do .NET que representa o terminal do programa. WriteLine é um método dela que escreve uma linha de texto.

Mas olha só: o Console faz muito mais do que imprimir. Ele lê entrada do usuário, muda a cor do texto no terminal, limpa a tela, move o cursor. É uma caixa de ferramentas completa pra interação via console.

A notação Console.WriteLine(...) segue o padrão de acesso a membros de classe em C#: NomeDaClasse.NomeDoMétodo(argumentos). Esse ponto entre Console e WriteLine vai aparecer em todo o código que você escrever.

A documentação oficial da classe Console no Microsoft Learn lista todos os métodos disponíveis. Vale dar uma olhada rápida pra ter uma ideia do que existe.

Rodando o programa pela primeira vez

Com o Program.cs aberto, pressione F5.

O Visual Studio vai compilar o código (transformar C# em instruções que o computador entende) e abrir uma janela de console com a saída:

Hello, World!

Saída do programa Hello World no terminal do Visual Studio

Pronto. Esse foi o seu primeiro programa em C# rodando.

Se quiser executar sem o debugger, use Ctrl+F5. A janela do console fica aberta até você pressionar uma tecla.

Dica

Se a janela fechar antes de você ler a saída, adicione Console.ReadKey(); na última linha do Main. Isso pausa o programa esperando uma tecla ser pressionada (um atalho útil enquanto você está testando coisas novas).

Quer aprender C# do zero de verdade?

O curso de Lógica de Programação com C# ensina os fundamentos passo a passo.

Ver cursos

Interagindo com o usuário: Console.ReadLine()

Um programa que só imprime texto fixo tem uso limitado. O próximo passo é ler entrada do usuário.

Substitua o conteúdo do Main (ou o arquivo inteiro, se estiver usando top-level statements) pelo código abaixo:

Console.Write("Qual é o seu nome? ");
string nome = Console.ReadLine();
Console.WriteLine("Olá, " + nome + ". Seja bem-vindo ao C#.");

Rode com F5. O programa vai perguntar seu nome, aguardar você digitar e responder com uma saudação.

Programa C# pedindo o nome do usuário no console

Três detalhes importantes nesse código:

  • Console.Write vs Console.WriteLine: o Write imprime sem quebrar a linha. O cursor fica parado na mesma linha, esperando a entrada do usuário.
  • string nome = Console.ReadLine();: ReadLine lê tudo que o usuário digitou até o Enter e retorna como texto. string é o tipo de dado pra texto em C#.
  • Concatenação com +: a forma mais direta de juntar strings. Conforme você avança, vai conhecer a interpolação de strings ($"Olá, {nome}", bem mais legível em strings complexas).

Esses três ingredientes — entrada, processamento, saída — estão na base de qualquer programa interativo.

Erros comuns nessa fase

A janela fecha antes de eu ler a saída. Use Ctrl+F5 em vez de F5, ou adicione Console.ReadKey(); no final do programa.

Aparece um erro "O nome 'Console' não existe no contexto atual". Confirme que o arquivo tem using System; no topo. Em projetos .NET 6+ com top-level statements, esse namespace já está implícito, mas em projetos mais antigos precisa declarar. O tutorial oficial de introdução ao C# no Microsoft Learn tem os exemplos de referência pra comparar.

O programa compila mas não aparece nada na tela. Verifique se o Console.WriteLine(...) está realmente dentro do método Main, e não fora dele acidentalmente.

Acentos aparecem errados no console. No Windows, adicione Console.OutputEncoding = System.Text.Encoding.UTF8; como primeira linha do Main. O .NET 8 já faz isso por padrão na maioria dos casos, mas em alguns ambientes pode ser necessário.

O que estudar depois do Hello World

Hello World resolve a questão mais básica: o ambiente funciona, o projeto compila, o código roda. Isso elimina a maioria dos problemas que travam iniciantes nas primeiras semanas.

Aí o próximo passo é aprender os fundamentos que permitem que programas façam algo útil: variáveis de tipos diferentes (int, double, bool, string), condicionais (if/else), loops (for, while) e funções. Com esses quatro conceitos você já consegue resolver problemas reais e começar a entender programação orientada a objetos.

Se você quer uma sequência estruturada que cobre exatamente isso em ordem, sem depender de YouTube aleatório, o curso de Lógica de Programação com C# é o caminho direto.

Perguntas frequentes

Por que tem tanto código em um Hello World em C#?
Porque o C# usa um modelo de organização com namespaces e classes. Esse boilerplate é o esqueleto padrão de qualquer programa console. Com .NET 6+, dá pra suprimir tudo isso usando top-level statements, mas aprender o formato completo primeiro ajuda a entender o que está acontecendo.
O que é static void Main em C#?
Main é o ponto de entrada de um programa C#. É onde a execução começa. static significa que o método pertence à classe, não a um objeto instanciado. void indica que o método não retorna nenhum valor. Os parâmetros string[] args permitem passar argumentos pela linha de comando, mas podem ser ignorados no início.
Dá pra escrever programas em C# no Mac ou Linux?
Sim. C# roda em qualquer sistema operacional via .NET 6+. No Mac ou Linux, use o VS Code com a extensão C# Dev Kit, ou o Rider da JetBrains. Este tutorial usa o Visual Studio 2022, que é exclusivo do Windows.
O que estudar depois do Hello World em C#?
O próximo passo é aprender os fundamentos de lógica de programação: variáveis, condicionais (if/else), loops (for, while) e funções. Com esses quatro conceitos você já consegue resolver problemas reais e avançar para programação orientada a objetos.

Artigos relacionados

c#iniciantes

O que é C# e por que aprender em 2026?

C# é uma linguagem moderna, fortemente tipada e versátil, criada pela Microsoft. Neste artigo você vai entender o que ela é, onde é usada e por que pode ser a porta de entrada ideal para sua carreira dev.

5 minLer →

Quer aprender C# do zero ao avançado?

Cursos práticos em português, com projetos reais e acesso vitalício.

Conhecer o curso de C#