Biblioteca Padrão C# (.NET): Visão Geral Completa
A biblioteca padrão .NET (Base Class Library, BCL) é um conjunto fundamental de classes, interfaces e tipos de valor que faz parte da plataforma .NET. Ela fornece aos desenvolvedores C# componentes prontos para resolver tarefas típicas: desde trabalhar com coleções e arquivos até comunicação em rede e programação assíncrona. Neste artigo, vamos detalhar os principais namespaces e classes que todo desenvolvedor C# deve conhecer.
1. Namespace System — a base de tudo
O namespace raiz System contém tipos fundamentais:
- Tipos de dados básicos:
Object,String,Int32,Double,Booleane outros. - Utilitários:
Console(entrada/saída),Math(funções matemáticas),Random(geração de números aleatórios). - Tratamento de erros:
Exceptione seus herdeiros (ArgumentException,NullReferenceException, etc.).
Exemplo de uso:
using System;
class Program{ static void Main() { Console.WriteLine("Olá, .NET!"); double result = Math.Sqrt(144); Console.WriteLine($"Raiz quadrada de 144: {result}"); }}2. System.Collections — trabalhando com coleções
Namespace para armazenar e gerenciar grupos de objetos. Divide-se em coleções genéricas (generic) e não genéricas.
Classes principais:
List<T>— array dinâmico com acesso rápido por índice.Dictionary<TKey, TValue>— array associativo (tabela hash).Queue<T>— fila (FIFO).Stack<T>— pilha (LIFO).HashSet<T>— conjunto de elementos únicos.
Exemplo:
using System.Collections.Generic;
var numbers = new List<int> { 10, 20, 30 };numbers.Add(40);
var lookup = new Dictionary<string, int>{ ["um"] = 1, ["dois"] = 2};
Console.WriteLine(lookup["dois"]); // 23. System.Linq — Language Integrated Query
LINQ permite executar consultas semelhantes a SQL em coleções, bancos de dados e XML. Principais métodos de extensão:
Where()— filtragem.Select()— projeção.OrderBy()— ordenação.GroupBy()— agrupamento.Aggregate()— funções agregadas (Sum, Count, Average).
Exemplo:
using System.Linq;
int[] scores = { 85, 92, 78, 95, 88 };var highScores = scores .Where(s => s >= 90) .OrderByDescending(s => s) .ToList();
Console.WriteLine(string.Join(", ", highScores)); // 95, 924. System.IO — manipulação de arquivos e fluxos
Namespace para entrada e saída de dados. Classes principais:
File/FileInfo— criação, leitura, escrita de arquivos.Directory/DirectoryInfo— trabalho com diretórios.StreamReader/StreamWriter— leitura/escrita de fluxos de texto.FileStream— manipulação de arquivos de baixo nível.
Exemplo de escrita e leitura:
using System.IO;
string path = "exemplo.txt";File.WriteAllText(path, "Olá, .NET!");
string content = File.ReadAllText(path);Console.WriteLine(content); // Olá, .NET!5. System.Threading.Tasks — programação assíncrona
Abordagem moderna para assincronia através das palavras-chave async e await. Classes principais