Tutorial C#

Aprenda C# do zero, como numa escola: cada linha de código é explicada parte por parte, você vê exatamente o que aparece na tela e pratica num editor aqui mesmo no navegador. E o editor não é uma imitação: ele compila o seu código com o Roslyn, o mesmo compilador de C# que vem no dotnet, e roda o programa com o .NET transformado em WebAssembly, dentro da página. O guia ensina o C# 14 com o .NET 10, a versão de suporte longo atual, e todas as saídas e mensagens de erro foram conferidas num computador real, com o dotnet 10. Vale para Linux, Windows e macOS.

Comece pelo Nível 1 ❯

Experimente agora

A caixa abaixo é o editor Experimente do guia. Ela tem um programa em C# completo, de uma linha só, pronto para rodar. Clique em Rodar. Na primeira vez, o navegador baixa o compilador e o .NET (cerca de 17 MB, uma vez só; pode levar alguns segundos, dependendo da sua internet). Depois disso, o navegador guarda tudo, e cada execução é bem mais rápida. Nada do que você fizer aqui mexe no seu computador.

Missão: clique em Rodar e veja o Olá, mundo! aparecer. Depois troque o texto entre as aspas por Estou aprendendo C#! e rode de novo. Cuidado para não apagar as aspas ", os parênteses nem o ; do fim da linha.

Console.WriteLine("Olá, mundo!");
Console.WriteLine("Estou aprendendo C#!");

O que aconteceu: quando você clicou em Rodar, duas coisas aconteceram, uma depois da outra. Primeiro, o compilador leu o seu texto e o traduziu para uma linguagem intermediária que o .NET entende (como um tradutor que passa uma receita do português para uma língua que toda cozinha do mundo sabe ler). Depois, o .NET pegou essa tradução e rodou o programa, que escreveu a frase. A aula .NET: SDK, Runtime e CLR mostra cada etapa com calma.

A linha Console.WriteLine("Olá, mundo!"); quer dizer, palavra por palavra, "console, escreva uma linha com este texto". O console é a tela de texto onde o programa conversa com você. Em muitas linguagens, um programa precisa de uma "moldura" de várias linhas antes de fazer qualquer coisa; no C# moderno, uma linha basta. A aula Olá, Mundo explica cada pedaço.

Se você apagou o ; sem querer, viu uma mensagem com a palavra error e o código CS1002, e o programa nem chegou a rodar. Não se assuste: é o compilador dizendo em que linha e em que coluna ele se perdeu. A aula Lendo Erros do Compilador ensina a ler essas mensagens, que no começo parecem grego e depois viram as suas melhores amigas.

Um programa que faz conta

Computadores são ótimos em contas. A caixa abaixo guarda duas notas da Ana em duas variáveis (caixinhas com nome, aula Variáveis) e mostra a média. O $ antes das aspas e as chaves { } abrem um "buraco" no texto, que o C# preenche com o resultado da conta (aula Interpolação). Rode e veja o resultado.

Missão: rode e veja a média 8. A professora corrigiu as provas de novo: a primeira valia 8 e a segunda 10. Troque os dois números, rode outra vez, e a média deve virar 9.

int prova1 = 7;
int prova2 = 9;
Console.WriteLine($"Média da Ana: {(prova1 + prova2) / 2}");
int prova1 = 8;
int prova2 = 10;
Console.WriteLine($"Média da Ana: {(prova1 + prova2) / 2}");

Repare que o texto entre aspas aparece igualzinho, e no lugar de {(prova1 + prova2) / 2} aparece a conta já calculada. Curiosidade que vai ser útil depois: se as notas fossem 7 e 8, a média apareceria 7, e não 7,5. Em C#, a divisão entre dois números inteiros joga fora a parte quebrada. Dividindo por 2.0 (com ponto, no código), o resultado sai 7,5 (com vírgula, na tela, porque o computador está em português). A aula Operadores Aritméticos explica por quê, e a aula Cultura explica a vírgula.


O que é este guia

O C# (pronuncia-se "cê-xárp", como a nota musical dó sustenido em inglês, C sharp) é uma linguagem de programação criada pela Microsoft e lançada em 2002. Hoje ela é livre e gratuita, roda em Linux, Windows e macOS, e está por trás de muita coisa: sites e sistemas de bancos e lojas (com o ASP.NET), jogos feitos no motor Unity (usado em boa parte dos jogos de celular), programas de computador, aplicativos de celular e serviços na nuvem. A aula O que é C# conta essa história.

Quem aprende C# consegue:

  • escrever programas que fazem contas, tomam decisões, repetem tarefas e organizam listas de dados;
  • organizar programas grandes com classes e objetos (orientação a objetos), do jeito que as empresas trabalham;
  • ler e gravar arquivos e dados em JSON, fazer consultas em listas com o LINQ e escrever programas que fazem várias coisas ao mesmo tempo;
  • partir depois para sites (ASP.NET Core), jogos (Unity e Godot), aplicativos de celular e de computador (.NET MAUI);
  • aprender Java, TypeScript, Kotlin ou Swift com muito mais facilidade, porque elas se parecem muito com o C#.

O guia é para quem nunca programou. Ele começa do zero absoluto (o que é um programa? o que é compilar?) e vai até classes, herança, interfaces, coleções, LINQ, programação assíncrona, testes e a publicação do programa. O C# tem fama de linguagem "segura": o compilador confere os tipos antes de rodar, o .NET cuida da memória para você e os erros aparecem com mensagens claras. O guia aproveita isso e ensina, desde a primeira aula, os hábitos que evitam problemas (ler os avisos do compilador, conferir o que o usuário digitou, usar decimal para dinheiro).


Como as aulas funcionam

Nenhum código aparece "seco". Toda aula segue o mesmo caminho:

  1. A ideia primeiro. Antes do código, você entende o problema que ele resolve, com uma comparação do dia a dia.
  2. Anatomia. Cada pedaço de uma linha nova é separado e explicado: o que é palavra do C#, o que é nome escolhido por você, para que serve cada símbolo.
  3. A saída real. Você vê exatamente o que aparece na tela, com etiquetas laranja apontando o que importa. Toda saída foi produzida pelo dotnet de verdade.
  4. Experimente. Pelo menos duas caixas por aula para você mudar o código e rodar, muitas com uma missão e um botão para ver a solução. As caixas compilam o C# de verdade, então os erros que você vir são erros reais.
  5. Várias formas de fazer. Quase sempre há mais de um caminho, e uma tabela "qual usar" mostra quando escolher cada um.
  6. Quando dá errado. O código com erro, a mensagem real do compilador (ou a exceção do programa), o que ela quer dizer e como consertar.
  7. Exercícios e resumo. Perguntas com correção na hora e uma lista curta do que levar da aula.

Exemplo: a anatomia de uma linha

Esta é a linha que você mudou lá em cima. Veja como as aulas desmontam uma linha de código:

Console.WriteLine("Olá, mundo!");
Console
O "console", a tela de texto do programa. Em C#, Console é uma classe pronta, que vem com o .NET e reúne tudo o que se pode fazer com essa tela: escrever, ler o que a pessoa digita, limpar, mudar a cor.
.
O ponto quer dizer "de dentro de": Console.WriteLine é "o WriteLine que fica dentro do Console".
WriteLine
"Escrever linha": escreve o texto e pula para a linha de baixo. É um método, uma ação que se pode pedir. Repare nas maiúsculas: o C# diferencia WriteLine de writeline.
( )
Os parênteses levam para o método aquilo com que ele vai trabalhar. Aqui, o texto a escrever.
"Olá, mundo!"
O texto a mostrar. As aspas marcam onde ele começa e termina e não aparecem na tela. Um texto entre aspas se chama string (aula Strings).
;
O ponto e vírgula termina a instrução, como o ponto final de uma frase. Esquecê-lo é o erro número um de quem começa.

Exemplo: o terminal

Além do editor, as aulas mostram o terminal da máquina fictícia do guia: um computador chamado notebook, da usuária ana, com Ubuntu Linux em português e o .NET 10 instalado. Ali, a Ana guarda o código num arquivo e pede ao dotnet para compilar e rodar, tudo num comando só:

$ cat ola.cs                                    « mostra o conteúdo do arquivo
Console.WriteLine("Olá, mundo!");
$ dotnet run ola.cs                             « compila e roda o arquivo ola.cs
Olá, mundo!
$ echo $?
0                                               « código de saída 0: terminou sem erro

Repare que o dotnet não escreveu "compilando" nem "pronto": só apareceu o que o programa escreveu. Se houvesse um erro, ele apareceria ali. E quando falta o ;, é assim que o compilador reclama:

$ cat semponto.cs
Console.WriteLine("Olá, mundo!")
$ dotnet run semponto.cs
/home/ana/cs/semponto.cs(1,33): error CS1002: ; esperado     « linha 1, coluna 33: faltou um ;

Ocorreu uma falha no build. Corrija os erros de build e execute novamente.
$ echo $?
1                                               « 1: a compilação falhou, o programa nem rodou

As mensagens do compilador saem em português, porque o computador da Ana está em português, e cada erro tem um código (CS1002) que é o mesmo em qualquer língua: procurando "CS1002" na internet, você acha a explicação. A aula Rodar com dotnet run explica esse comando, e a aula O Editor do Guia ensina a usar as caixas Experimente.


Escolha sua trilha

O guia tem três níveis, uma seção de projetos e uma de referência. Os níveis foram pensados para serem feitos em ordem: cada aula usa o que as anteriores ensinaram.

Nível 1 · Iniciante

Programar em C# do zero.

Começar ❯

Nível 2 · Intermediário

Métodos, null e orientação a objetos.

Começar ❯

Nível 3 · Avançado

C# moderno e profissional.

Começar ❯

Projetos

Programas completos, construídos passo a passo.

Ver projetos ❯

Referência

Consulta rápida para quando você já sabe o que procura.

Consultar ❯

Como estudar

Programar se aprende fazendo, como andar de bicicleta. Para cada aula, siga estes quatro passos:

  1. Leia com calma. Leia a ideia, a anatomia e a saída. Não pule a parte "Quando dá errado": quem sabe ler um erro programa duas vezes mais rápido.
  2. Rode no editor. Clique em Rodar em toda caixa Experimente. Mude um número, um texto, apague um ; de propósito e veja o que acontece. Não tem como estragar nada: o botão Restaurar volta ao código original.
  3. Faça as missões. As caixas com Missão conferem sozinhas se você acertou. Tente de verdade antes de abrir a solução; se abrir, digite a solução você mesmo em vez de só olhar.
  4. Pratique no terminal. Quando tiver o .NET instalado, repita os exemplos no seu computador, com o seu editor, rodando com dotnet run. É assim que se programa "de verdade", e algumas aulas (pacotes NuGet, testes, depuração, publicar) só funcionam ali.
A regra de ouro

Ler não basta: digite cada exemplo. Copiar e colar ensina pouco; digitar faz você reparar em cada ;, cada chave e cada aspa. Para instalar o .NET, veja Instalar no Linux ou Instalar no Windows e macOS, e para escolher onde escrever o código, Editores e IDEs. Se ainda não quiser instalar nada, tudo bem: quase todo o Nível 1 pode ser feito só no navegador.

O editor que compila C# de verdade

As caixas Experimente não fingem. Dentro delas rodam duas peças de verdade:

  • o Roslyn, o compilador oficial do C#, o mesmo que o dotnet usa no seu computador. Ele confere o seu código, mostra os erros e avisos com os mesmos códigos (CS1002, CS0103…) e traduz o programa;
  • o próprio .NET, transformado em WebAssembly (o formato de programa que os navegadores sabem executar), que roda o programa traduzido e mostra a saída e o código de saída.

Você pode digitar a entrada quando o programa pede, usar vários arquivos e até ver o programa "quebrar" com uma exceção, como no terminal. Algumas coisas são diferentes num navegador (ele não deixa um programa mexer nos arquivos do seu computador, por exemplo). A aula O Editor do Guia mostra o que muda.


Como ler este guia

ElementoO que significa
Caixa com o nome ola.cs no cantoO conteúdo de um arquivo de código. O nome no canto é o nome do arquivo. Quando aparece trecho, é só um pedaço de programa, não um arquivo inteiro.
ana@notebook:~/cs$O prompt do terminal: usuária ana, na máquina notebook, na pasta ~/cs (a pasta cs dentro da pasta pessoal). O que vem depois é o comando digitado.
> no começo da linhaContinuação do comando da linha de cima (por exemplo, o texto de um arquivo sendo criado no terminal).
Linhas sem promptA resposta do computador: a saída do programa ou a mensagem do compilador.
← etiquetaUma explicação do guia sobre aquela linha. Não aparece no terminal real.
C# 12O recurso só existe a partir dessa versão do C#. A aula diz a alternativa para versões mais antigas (veja Versões do C# e do .NET).
ilustrativoUma tela que não pôde ser produzida na máquina do guia (por exemplo, a instalação no Windows). Ela segue os passos oficiais, mas os detalhes podem variar.
Versão de referência: C# 14 com o .NET 10

As saídas do terminal foram conferidas com o .NET SDK 10.0.112 que vem no próprio Ubuntu 26.04 (o compilador Roslyn 5.0, que entende o C# 14), num Linux em português do Brasil. O .NET 10 é uma versão LTS (de suporte longo), lançada em novembro de 2025 e com atualizações de segurança até novembro de 2028. Muito código na internet ainda usa o .NET 6 ou o .NET 8; quando um recurso é novo, a aula avisa com o selo de versão e mostra a forma antiga.