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#


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

CSHARP
int age = 25;
string name = "C#";
age = name;
▶ Experimente

Isso gera um erro em tempo de compilação — não é possível atribuir um string a uma variável int:

TEXT 📖 Somente leitura
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

CSHARP
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();
▶ Experimente
TEXT 📖 Somente leitura
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
💡 Dica: Para novos projetos, opte pelo .NET 8 LTS. Se quiser os recursos mais recentes, experimente o .NET 9. Evite o .NET Framework, a menos que esteja mantendo projetos legados.


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
⚠️ Atenção: O C# e o Java têm sintaxe muito semelhante, mas o C# evolui mais rapidamente e possui recursos como LINQ, async/await, propriedades e sobrecarga de operadores, que há muito faltavam ao Java. Em comparação com o C++, o C# sacrifica um pouco do desempenho máximo em prol da segurança e da produtividade do desenvolvedor. Em comparação com o Python, o C# é compilado e estritamente tipado, o que facilita sua manutenção em projetos de grande porte.


8. Seu primeiro programa em C#

▶ Exemplo

Usando as instruções de nível superior introduzidas no C# 9.0, basta uma única linha:

CSHARP
System.Console.WriteLine("Hello, World!");
▶ Experimente
TEXT 📖 Somente leitura
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):

CSHARP
using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}
▶ Experimente
TEXT 📖 Somente leitura
Hello, World!
💡 Dica: Ambas as abordagens são funcionalmente idênticas. Em novos projetos, deve-se dar preferência às instruções de nível superior por uma questão de concisão. Compreender o estilo tradicional ajuda na leitura de códigos mais antigos e no aprendizado de estruturas orientadas a objetos.


9. Como se tornar um especialista em C#

❓ 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

📝 Exercícios

  1. Instale o SDK do .NET, execute dotnet new console -n MyFirstApp no terminal e, em seguida, use instruções de nível superior para exibir seu nome e uma breve apresentação pessoal
  2. Reescreva as instruções de nível superior do exercício 1 no estilo tradicional Program.Main e compare as duas abordagens
  3. Pesquise o que é o LINQ (introduzido no C# 3.0) e resuma sua finalidade em uma frase
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%