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.

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:
- Clique em Criar novo projeto
- 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)
- Clique em Próximo, dê um nome ao projeto (
PrimeiroProgramaCSfunciona bem) e escolha onde salvar - 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 namespaceSystem, onde fica a classeConsole. Sem essa linha, você precisaria escreverSystem.Console.WriteLine(...). Ousingé 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.staticindica que o método pertence à classe, não a um objeto.voidindica que não retorna nada.string[] argspermite 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!

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 cursosInteragindo 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.

Três detalhes importantes nesse código:
Console.WritevsConsole.WriteLine: oWriteimprime sem quebrar a linha. O cursor fica parado na mesma linha, esperando a entrada do usuário.string nome = Console.ReadLine();:ReadLinelê 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.