O Que É a Linguagem de Programação C#? Um Guia Simples da Linguagem da Microsoft para Apps, Sites e Jogos
Um guia simples e sem jargões sobre o C#, a popular linguagem da Microsoft por trás de jogos feitos na Unity, sites e apps de empresas. Entenda de onde vem o nome, como ele roda em quase qualquer aparelho e por que cuida da memória para você.

Nesta página
Se você já jogou Among Us, Hollow Knight ou Pokémon GO, visitou o Stack Overflow ou usou o sistema de um banco, de uma loja ou de um hospital, há uma boa chance de ter usado algo feito em C# (em inglês, pronuncia-se "C sharp"; no Brasil, muita gente diz "C sharp" mesmo).
O C# é uma linguagem de programação criada pela Microsoft e lançada em 2002. Ela foi pensada para ser rápida, segura e produtiva: uma linguagem em que dá para construir aplicativos grandes e confiáveis sem se preocupar com cada detalhezinho da memória do computador. Este artigo explica, em linguagem simples, o que é o C#, como ele funciona e onde você o encontra.
De onde vem o nome
O nome tem um duplo sentido esperto:

- Na música, em inglês as notas têm letras: C é o dó, e C♯ (C sharp) é o dó sustenido, meio tom acima. Então o C# é "o C, um tom acima".
- No código, o sinal # parece quatro sinais de mais empilhados, uma brincadeira dizendo que é um passo além do C++.
O # do teclado não é exatamente o sinal musical de sustenido (♯), mas é o mais parecido que existe no teclado, então é o que todo mundo usa.
Quem criou, e por quê
No fim dos anos 1990, a Microsoft queria uma linguagem moderna para criar programas para Windows e sites, mais fácil e mais segura que o C++, mas ainda rápida. O projeto foi liderado por Anders Hejlsberg, um engenheiro dinamarquês que já tinha criado as populares ferramentas Turbo Pascal e Delphi (e que depois também criou o TypeScript).
A linguagem teve primeiro o codinome "Cool" e foi anunciada como C# em 2000. O C# 1.0 saiu no começo de 2002, junto com o .NET, a plataforma em que os programas em C# rodam.

Na primeira década, o C# era coisa principalmente de Windows. Isso mudou em 2014, quando a Microsoft abriu o código do .NET, e em 2016, quando o .NET passou a rodar também no Linux e no macOS. Hoje, o C# e o .NET são gratuitos, abertos e rodam em quase todo lugar, com uma versão nova lançada todo mês de novembro.
Como é o C#
Este é o primeiro programa clássico no C# moderno. É uma linha só:
Console.WriteLine("Hello, world!");Console é a janela de texto, e WriteLine escreve uma linha de texto nela. Só isso.
Assim como o C++, o C# é orientado a objetos: você descreve um tipo de coisa como uma classe (uma planta) e depois cria objetos a partir dela. Veja um carrinho:
1var meuCarro = new Carro { Cor = "vermelho" };
2meuCarro.Acelerar();
3meuCarro.Acelerar();
4Console.WriteLine($"O meu carro {meuCarro.Cor} anda a {meuCarro.Velocidade} km/h");
5
6class Carro
7{
8 public string Cor { get; set; } = "";
9 public int Velocidade { get; private set; }
10
11 public void Acelerar() => Velocidade += 10;
12 public void Frear() => Velocidade = 0;
13}Quando roda, ele mostra: O meu carro vermelho anda a 20 km/h.
Se você leu o artigo sobre C++, isso vai parecer familiar, com alguns extras. Por exemplo, private set quer dizer que só o próprio carro pode mudar a sua velocidade. Ninguém mais pode, escondido, colocá-la em 500 km/h. Pequenos cuidados de segurança como esse estão por todo o C#.
Como um programa em C# roda
O C# usa uma tradução em duas etapas, um pouco diferente do C e do C++:

- O compilador C# traduz o seu código para IL (Intermediate Language, linguagem intermediária), um conjunto de instruções universais que não estão presas a nenhum tipo de computador.
- Quando o programa roda, o runtime .NET daquele aparelho traduz o IL para o código de máquina exato que aquele processador entende. Isso se chama compilação JIT (just-in-time, "na hora certa"), porque acontece na hora, conforme o programa precisa.
Pense numa receita escrita numa abreviação universal. Cada cozinha tem um cozinheiro local que lê a abreviação e prepara o prato com os ingredientes e utensílios que tem. Você escreve a receita uma vez, e ela funciona em cozinhas do mundo todo.
Memória que se cuida sozinha
No C, quem programa precisa devolver a memória à mão. No C++, os objetos se limpam sozinhos quando saem de cena. O C# vai um passo além, com um coletor de lixo (garbage collector):

O coletor de lixo é como uma faxineira que passa de tempos em tempos. Tudo o que o seu programa ainda consegue alcançar (o jogador, o placar, as configurações) fica onde está. Tudo o que nada mais aponta (o menu antigo que você fechou, o mapa de uma fase que já terminou) é varrido, e essa memória é liberada.
Isso faz do C# uma linguagem com segurança de memória: os erros perigosos comuns em C e C++, como escrever além do fim de uma lista ou usar memória depois de devolvê-la, são bloqueados por padrão. O C# confere, por exemplo, que você nunca leia o item número 4 de uma lista com só 3 itens, e para com um erro claro em vez de corromper a memória em silêncio.
A troca: a faxina precisa de um instante para trabalhar de vez em quando, e quem programa tem um pouco menos de controle sobre exatamente quando a memória é liberada. Para a maioria dos aplicativos, é um ótimo negócio.
Ele é rápido?
Sim, surpreendentemente. Rodamos o mesmo programa simples, que conta todos os números primos abaixo de 2 milhões, em quatro linguagens, no mesmo notebook:

O C# ficou logo atrás do C, mesmo com esses tempos incluindo a inicialização do runtime .NET. O Python, que é ótimo para muita coisa mas não foi feito para velocidade bruta, levou dezenas de vezes mais. Num teste simples como este, o tradutor JIT produz código de máquina quase tão bom quanto o do C.
Algumas ideias que o C# popularizou
O C# não só pegou ideias de outras linguagens; várias ideias dele se espalharam pelo mundo:
- async/await (2012): um jeito simples de escrever código que espera algo demorado, como baixar um arquivo, sem travar o aplicativo. JavaScript, Python, Rust e muitas outras linguagens depois adotaram as mesmas palavras-chave.
- LINQ (2007): um jeito de fazer perguntas sobre dados direto no código. Por exemplo, "desta lista de pessoas, me dê os adultos, em ordem de nome":
1var pessoas = new List<Pessoa>
2{
3 new("Maria", 34), new("Ana", 17), new("Pedro", 25), new("Lucas", 15),
4};
5
6var adultos = pessoas
7 .Where(pessoa => pessoa.Idade >= 18)
8 .OrderBy(pessoa => pessoa.Nome)
9 .Select(pessoa => pessoa.Nome);
10
11Console.WriteLine(string.Join(", ", adultos));
12
13record Pessoa(string Nome, int Idade);Isso mostra Maria, Pedro. Dá para ler quase como uma frase em inglês: where (onde) a idade é 18 ou mais, order by (ordenar por) nome, select (selecionar) o nome.
Onde o C# é usado

- Videogames: a Unity, um dos motores de jogos mais populares do mundo, usa C# no código dos jogos. Sucessos como Among Us, Hollow Knight, Cuphead e Pokémon GO foram feitos com a Unity. Se você quer criar jogos, o C# é uma primeira linguagem comum.
- Sites e serviços on-line: o ASP.NET, a parte do .NET para a web, move muitos sites, inclusive o Stack Overflow, o famoso site de perguntas e respostas para programadores.
- Software de empresas: bancos, seguradoras, varejistas e hospitais rodam muitos dos seus sistemas internos em C#.
- Apps para Windows, serviços na nuvem e apps de celular: de ferramentas para computador a sistemas na nuvem Azure, da Microsoft, até apps de celular feitos com o .NET MAUI.
O C# é há muito tempo uma das linguagens mais usadas do mundo, e o índice de popularidade TIOBE o escolheu como "linguagem de programação do ano" de 2023.
O C# ao lado dos vizinhos

- C# vs. C e C++: eles têm a mesma cara (chaves, ponto e vírgula), mas o C# cuida da memória para você e impede muitos erros antes que aconteçam. O C e o C++ dão um controle mais direto, o que importa em sistemas operacionais e motores de jogos.
- C# vs. Java: esses dois são primos próximos. Os dois rodam numa plataforma virtual, os dois usam coletor de lixo e os dois são enormes em software de empresas. Quando foi lançado, o C# era visto até como a resposta da Microsoft ao Java. Hoje, a escolha muitas vezes depende das ferramentas e das empresas ao seu redor.
- C# vs. Python: o Python é mais fácil para começar e reina em IA e ciência de dados. O C# é mais rápido e pega mais erros antes do programa rodar, graças aos seus tipos rígidos (cada valor tem um tipo declarado, como número ou texto).
Vale a pena aprender C#?
- Ótimos motivos: você quer criar jogos na Unity, construir sites ou aplicativos de empresas, ou desenvolver para Windows. O C# também é uma boa primeira linguagem de uso geral: rígido o bastante para ensinar bons hábitos, amigável o bastante para não assustar.
- Bom saber: todas as ferramentas são gratuitas. O .NET SDK roda no Windows, no macOS e no Linux, e dá para escrever C# no Visual Studio, no Visual Studio Code ou em outros editores.
Um pequeno glossário
- C#: uma linguagem de programação da Microsoft, lançada em 2002, pronunciada "C sharp".
- .NET: a plataforma gratuita e de código aberto em que os programas em C# rodam.
- IL (linguagem intermediária): instruções universais para as quais o C# é traduzido primeiro.
- Runtime: a parte do .NET que roda o seu programa num aparelho.
- Compilação JIT (na hora certa): traduzir o IL para código de máquina no próprio aparelho, enquanto o programa roda.
- Classe / objeto: uma planta, e uma coisa construída a partir dela.
- Coletor de lixo: um limpador automático que libera a memória que nada mais usa.
- Segurança de memória: quando uma linguagem impede a maioria dos erros de memória por padrão.
- Tipo: o tipo declarado de um valor, como número inteiro, texto ou data.
- LINQ: o jeito do C# de fazer perguntas sobre dados no código.
- async/await: palavras-chave para código que espera coisas demoradas sem travar.
- Unity: um motor de jogos popular que usa C# no código dos jogos.
- ASP.NET: a parte do .NET para criar sites e serviços web.
Concluindo
O C# é a resposta da Microsoft a uma grande pergunta: como manter boa parte da velocidade do C e do C++ deixando a programação mais segura e produtiva? A resposta junta uma aparência familiar, uma tradução em duas etapas que roda em quase qualquer aparelho e um coletor de lixo que cuida da memória para você.
Mais de 20 anos depois da estreia, o C# é gratuito, de código aberto e está em todo lugar: em jogos da Unity no seu celular, em sites e nos sistemas que mantêm bancos, lojas e hospitais funcionando. O nome resume bem: é o C, um tom acima.
Read next

O Que É a Linguagem de Programação C++? Um Guia Simples da Linguagem por Trás de Jogos e Navegadores
Um guia simples e sem jargões sobre o C++, a linguagem por trás de videogames, navegadores e muitos programas do dia a dia. Entenda o que ele acrescenta ao C, como funcionam as classes e a limpeza automática e por que ele é rápido e complexo.

O Que É a Linguagem de Programação C? Um Guia Simples da Linguagem Que Move o Mundo
Um guia simples e sem jargões sobre o C, a linguagem de programação de mais de 50 anos escondida no seu celular, no seu carro e na internet. Entenda o que é o C, por que ele é tão rápido, como lida com a memória e por que ainda importa.

O Que É um Transformer na IA? A Ideia por Trás do ChatGPT, Explicada de Forma Simples
Um guia simples e sem jargões sobre os transformers, a arquitetura de IA por trás do ChatGPT, do Claude e do Gemini. Entenda como a "atenção" ajuda a IA a entender palavras no contexto e por que isso mudou a IA tão rápido.
Comentários
Be kind and specific. Comments with links from new accounts appear after a moderator reviews them.