C#: Introdução ao C#
Se você já brincou com blocos de montar, já entende a essência da programação — combinar peças simples para formar estruturas complexas. O C# é exatamente esse tipo de “bloco de montar”: sintaxe clara, com segurança de tipos e poderoso, permitindo que você crie aplicativos de nível profissional desde a sua primeira linha de código.
1. O que é C#
C# (pronuncia-se “C Sharp”) é uma linguagem de programação orientada a objetos desenvolvida pela Microsoft em 2000, sob a liderança do designer-chefe Anders Hejlsberg, e lançada oficialmente em 2002. O # em seu nome é uma combinação de quatro sinais +, sugerindo que se trata de um passo além do C/C++.
O C# é executado na plataforma .NET, compilado e executado pelo CLR (Common Language Runtime), com amplo suporte de API da FCL (Framework Class Library). Em resumo:
| Componente | Função | Analogia |
|---|---|---|
| Linguagem C# | Regras de sintaxe para escrever código | Manual de instruções de um carro |
| CLR | Compila e executa programas | O motor de um carro |
| FCL | Oferece funcionalidades prontas para uso | Um depósito de peças automotivas |
| SDK do .NET | Kit de ferramentas de desenvolvimento | Toda a fábrica de automóveis |
2. Por que aprender C#
- Alta demanda no mercado: o C# figura consistentemente entre as 10 principais linguagens de programação, sendo especialmente dominante no desenvolvimento corporativo e de jogos
- Sintaxe elegante: o C# mantém uma forte segurança de tipos ao mesmo tempo em que introduz continuamente sintaxe simplificada e concisa, tornando o código altamente legível
- Multiplataforma: o .NET 5+ unificou as plataformas Windows, Linux e macOS
- Ecossistema maduro: O Visual Studio é amplamente considerado um dos IDEs mais poderosos, e o NuGet oferece centenas de milhares de bibliotecas de terceiros
- Ideal para iniciantes: a tipagem forte, aliada a dicas abrangentes do compilador, ajuda os iniciantes a cometerem menos erros e a se familiarizarem rapidamente com a linguagem
- Amplas possibilidades de carreira: do desenvolvimento de jogos às aplicações corporativas, da web aos dispositivos móveis — uma única linguagem abrange diversas áreas
3. O que o C# pode fazer
| Domínio | Pilha de tecnologia | Descrição |
|---|---|---|
| Desenvolvimento de jogos | Unity + C# | O Unity é o motor de jogos mais popular do mundo, utilizando C# como linguagem de script |
| Aplicativos da Web | ASP.NET Core | APIs da Web de alto desempenho e sites MVC |
| Aplicativos corporativos | .NET + EF Core | Grandes sistemas empresariais, como ERP e CRM |
| Aplicativos móveis | .NET MAUI / Xamarin | Uma única base de código que roda tanto no Android quanto no iOS |
| Aplicativos para desktop | WPF / WinForms | Programas nativos para desktop do Windows |
| Serviços em nuvem | Azure + C# | A linguagem preferida para o ecossistema de nuvem da Microsoft |
| IoT e Sistemas Embarcados | .NET nanoFramework | Executando C# em microcontroladores |
| Aprendizado de máquina | ML.NET | Estrutura nativa de aprendizado de máquina do .NET |
4. Principais recursos do C#
(1) Segurança de tipos
C# é uma linguagem fortemente tipada. O compilador verifica a compatibilidade de tipos antes da execução do programa, evitando uma grande variedade de erros de tempo de execução.
▶ Exemplo
int age = 25;
string name = "C#";
age = name;
Isso gera um erro em tempo de compilação — não é possível atribuir um string a uma variável int:
error CS0029: Cannot implicitly convert type 'string' to 'int'
(2) Orientado a objetos
O C# é orientado a objetos desde sua criação, suportando os três pilares fundamentais: encapsulamento, herança e polimorfismo. Tudo é um objeto.
▶ Exemplo
class Animal
{
public string Name { get; set; }
public virtual void Speak() => Console.WriteLine($"{Name} makes a sound");
}
class Dog : Animal
{
public override void Speak() => Console.WriteLine($"{Name} says: Woof!");
}
var dog = new Dog { Name = "Buddy" };
dog.Speak();
Buddy says: Woof!
(3) Multiplataforma
O .NET 5+ unificou o antigo .NET Framework (somente para Windows) e o .NET Core (multiplataforma). Agora, uma única base de código pode ser executada no Windows, no Linux e no macOS.
(4) Evolução da sintaxe moderna
O C# lança uma versão principal a cada dois anos, aproximadamente, adotando continuamente recursos modernos da linguagem, como programação funcional, correspondência de padrões e programação assíncrona, para manter a linguagem dinâmica.
5. Uma breve história do C#
| Versão | Ano de lançamento | Principais recursos |
|---|---|---|
| C# 1.0 | 2002 | Noções básicas de OOP, classes, interfaces, delegados |
| C# 2.0 | 2005 | Genéricos, métodos anônimos, tipos nulos |
| C# 3.0 | 2007 | LINQ, expressões lambda, métodos de extensão, propriedades automáticas |
| C# 4.0 | 2010 | Ligação dinâmica, parâmetros nomeados, covariância/contravariância |
| C# 5.0 | 2012 | programação assíncrona com async/await |
| C# 6.0 | 2015 | Interpolação de strings, operador condicional nulo, filtros de exceção |
| C# 7.0 | 2017 | Correspondência de padrões, tuplas, funções locais |
| C# 8.0 | 2019 | Tipos de referência nulos, fluxos assíncronos, métodos padrão de interface |
| C# 9.0 | 2020 | Tipos de registro, instruções de nível superior, acessadores de inicialização |
| C# 10.0 | 2021 | uso global, namespaces com escopo de arquivo, interpolação de strings constantes |
| C# 11.0 | 2022 | Literais de string brutos, padrões de lista, modificador obrigatório |
| C# 12.0 | 2023 | Construtores primários, expressões de coleção, matrizes inline |
6. Evolução do ecossistema .NET
| Época | Nome | Descrição |
|---|---|---|
| 2002—2019 | .NET Framework | Apenas para Windows, até a versão 4.8, sem adição de novos recursos |
| 2016—2019 | .NET Core | Reescrita multiplataforma, 1.0 → 2.0 → 3.1 |
| 2020 | .NET 5 | Unificação do .NET Core e do Mono; a versão 4 foi ignorada para evitar confusão |
| 2021 | .NET 6 | Primeira versão unificada com suporte de longo prazo (LTS) |
| 2022 | .NET 7 | Lançamento com STS (Suporte de Prazo Padrão) |
| 2023 | .NET 8 | Segunda versão LTS, recomendada para uso em produção |
| 2024 | .NET 9 | Versão mais recente do STS |
7. C# x outras linguagens
| Recurso | C# | Java | C++ | Python |
|---|---|---|---|---|
| Sistema de tipos | Tipagem forte, com inferência de tipos | Tipagem forte, mais detalhada | Tipagem forte, mais complexa | Tipagem dinâmica |
| Execução | Compilado por JIT | Compilado por JIT | Compilado nativamente | Interpretado |
| Desempenho | Alto | Alto | Mais alto | Mais baixo |
| Evolução da sintaxe | Rápida (nova versão a cada 2 anos) | Lenta (nova versão a cada 3–4 anos) | Estável | Moderada |
| Multiplataforma | .NET 5+ | JVM | Requer recompilação | Suporte nativo |
| Desenvolvimento de jogos | A primeira opção do Unity | LibGDX, etc. | A primeira opção do Unreal | Scripting/ferramentas auxiliares |
| Gerenciamento de memória | GC automático | GC automático | Manual | GC automático |
| Dificuldade de aprendizagem | Média | Média | Alta | Baixa |
8. Seu primeiro programa em C#
▶ Exemplo
Usando as instruções de nível superior introduzidas no C# 9.0, basta uma única linha:
System.Console.WriteLine("Hello, World!");
Hello, World!
▶ Exemplo
A abordagem tradicional que utiliza o ponto de entrada do método Main (o estilo padrão anterior ao C# 9.0):
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
Hello, World!
9. Como se tornar um especialista em C#
- Pratique na prática: Para cada ponto de sintaxe que você aprender, escreva imediatamente um código para verificá-lo — não se limite a ler sem praticar
- Entenda o ambiente de execução do .NET: Aprenda como o CLR compila e executa código para ajudá-lo a escrever programas mais eficientes
- Aproveite o Visual Studio: o IntelliSense, a depuração com pontos de interrupção e as ferramentas de análise de desempenho tornam o desenvolvimento muito mais produtivo
- Leia a documentação oficial: o Microsoft Learn é a fonte de referência mais confiável
- Aprenda passo a passo: Sintaxe básica → Programação orientada a objetos → LINQ → Programação assíncrona → Projetos reais
❓ Perguntas Frequentes
P: Qual é a relação entre C# e .NET? R: C# é a linguagem de programação; .NET é a plataforma de execução. O código C# é compilado e executado no CLR do .NET, assim como um carro (C#) precisa de uma estrada (.NET) para rodar.
P: Preciso do Windows para aprender C#? R: Não. O .NET 5+ é compatível com Linux e macOS, e o VS Code + C# Dev Kit oferece um ambiente de desenvolvimento totalmente multiplataforma.
P: Qual é a diferença entre o .NET Framework e o .NET 8? R: O .NET Framework é a versão mais antiga, exclusiva para Windows, na qual não há mais desenvolvimento de novos recursos. O .NET 8 é a versão LTS moderna e multiplataforma, recomendada para todos os novos projetos.
P: O C# do Unity é igual ao C# padrão? R: A sintaxe é idêntica, mas o Unity é executado em um subconjunto do Mono/.NET Standard; portanto, alguns recursos mais recentes do C# podem ainda não ser suportados. O Unity também oferece um amplo conjunto de APIs específicas para jogos.
📖 Resumo
- O C# foi desenvolvido por Anders Hejlsberg, da Microsoft, lançado em 2002 e roda na plataforma .NET
- O C# tem amplas aplicações: jogos (Unity), web (ASP.NET Core), desktop (WPF), dispositivos móveis (MAUI) e nuvem (Azure)
- Principais características: segurança de tipos, orientação a objetos, multiplataforma e sintaxe em constante evolução
- O ecossistema .NET evoluiu do .NET Framework para o .NET 8 LTS / .NET 9, alcançando a unificação entre plataformas
- O C# evolui mais rapidamente do que o Java, é mais seguro do que o C++ e apresenta melhor desempenho e tipagem mais rígida do que o Python
- Os novos projetos devem utilizar instruções de nível superior + .NET 8 LTS
📝 Exercícios
- Instale o SDK do .NET, execute
dotnet new console -n MyFirstAppno terminal e, em seguida, use instruções de nível superior para exibir seu nome e uma breve apresentação pessoal - Reescreva as instruções de nível superior do exercício 1 no estilo tradicional
Program.Maine compare as duas abordagens - Pesquise o que é o LINQ (introduzido no C# 3.0) e resuma sua finalidade em uma frase