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.
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:
- A ideia primeiro. Antes do código, você entende o problema que ele resolve, com uma comparação do dia a dia.
- 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.
- 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
dotnetde verdade. - 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.
- Várias formas de fazer. Quase sempre há mais de um caminho, e uma tabela "qual usar" mostra quando escolher cada um.
- 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.
- 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é "oWriteLineque fica dentro doConsole". - 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
WriteLinedewriteline. - ( )
- 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çando: o que é C# e o .NET, as versões, instalar e escolher um editor
- Primeiros Passos: o primeiro programa,
dotnet run, projetos,Console.WriteLine, erros e avisos - Variáveis e Tipos e Operadores: números,
decimal,bool,var,TryParse - Texto, Decisões e Repetições: strings, interpolação,
if,switch,for,foreach - Entrada, Arrays e Números:
Console.ReadLine, listas de valores,Math,Random
Nível 2 · Intermediário
Métodos, null e orientação a objetos.
- Métodos: parâmetros, retorno,
refeout, sobrecarga, recursão - Null: tipos anuláveis,
??e?., referências anuláveis - Classes e Objetos: propriedades, construtores, encapsulamento,
static - Herança e Polimorfismo:
virtualeoverride, classes abstratas, interfaces - Tipos de Valor e Exceções:
struct,enum,record,tryecatch
Nível 3 · Avançado
C# moderno e profissional.
- Coleções e Generics:
List<T>,Dictionary,yield - Delegates e LINQ: lambdas, eventos,
Where,Select,GroupBy - C# Moderno: pattern matching, atributos,
Span<T>, as novidades do C# 14 - Arquivos e Dados e Assíncrono: arquivos, JSON, datas,
asynceawait - Ferramentas: o comando
dotnet, NuGet, testes com xUnit, depuração, publicar
Projetos
Programas completos, construídos passo a passo.
- Calculadora e jogo de adivinhação
- Boletim de notas e lista de tarefas
- Agenda de contatos gravada em JSON
- Conta bancária com classes e estoque da lojinha com LINQ
Referência
Consulta rápida para quando você já sabe o que procura.
- Palavras-chave, tipos e limites e operadores
string, coleções e LINQ- Exceções e erros do compilador (CS…)
- Glossário e quiz
Como estudar
Programar se aprende fazendo, como andar de bicicleta. Para cada aula, siga estes quatro passos:
- 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.
- 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. - 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.
- 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.
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
dotnetusa 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
| Elemento | O que significa |
|---|---|
Caixa com o nome ola.cs no canto | O 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 linha | Continuação do comando da linha de cima (por exemplo, o texto de um arquivo sendo criado no terminal). |
| Linhas sem prompt | A resposta do computador: a saída do programa ou a mensagem do compilador. |
| ← etiqueta | Uma explicação do guia sobre aquela linha. Não aparece no terminal real. |
| C# 12 | O 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). |
| ilustrativo | Uma 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. |
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.