Biblioteca estándar de C# (.NET): descripción completa
La biblioteca estándar de .NET (Base Class Library, BCL) es un conjunto fundamental de clases, interfaces y tipos de valor que forma parte de la plataforma .NET. Proporciona a los desarrolladores de C# componentes listos para resolver tareas típicas: desde trabajar con colecciones y archivos hasta la comunicación en red y la programación asíncrona. En este artículo, analizaremos en detalle los espacios de nombres y clases clave que todo desarrollador de C# debe conocer.
1. Espacio de nombres System — la base de todo
El espacio de nombres raíz System contiene tipos fundamentales:
- Tipos de datos básicos:
Object,String,Int32,Double,Boolean, etc. - Utilidades:
Console(entrada/salida),Math(funciones matemáticas),Random(generación de números aleatorios). - Manejo de errores:
Exceptiony sus derivados (ArgumentException,NullReferenceException, etc.).
Ejemplo de uso:
using System;
class Program{ static void Main() { Console.WriteLine("¡Hola, .NET!"); double result = Math.Sqrt(144); Console.WriteLine($"Raíz cuadrada de 144: {result}"); }}2. System.Collections — trabajo con colecciones
Espacio de nombres para almacenar y gestionar grupos de objetos. Se divide en colecciones genéricas y no genéricas.
Clases principales:
List<T>— arreglo dinámico con acceso rápido por índice.Dictionary<TKey, TValue>— arreglo asociativo (tabla hash).Queue<T>— cola (FIFO).Stack<T>— pila (LIFO).HashSet<T>— conjunto de elementos únicos.
Ejemplo:
using System.Collections.Generic;
var numbers = new List<int> { 10, 20, 30 };numbers.Add(40);
var lookup = new Dictionary<string, int>{ ["uno"] = 1, ["dos"] = 2};
Console.WriteLine(lookup["dos"]); // 23. System.Linq — Language Integrated Query
LINQ permite realizar consultas similares a SQL en colecciones, bases de datos y XML. Métodos de extensión principales:
Where()— filtrado.Select()— proyección.OrderBy()— ordenamiento.GroupBy()— agrupación.Aggregate()— funciones agregadas (Sum, Count, Average).
Ejemplo:
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 — trabajo con archivos y flujos
Espacio de nombres para entrada/salida de datos. Clases clave:
File/FileInfo— creación, lectura, escritura de archivos.Directory/DirectoryInfo— trabajo con directorios.StreamReader/StreamWriter— lectura/escritura de flujos de texto.FileStream— trabajo de bajo nivel con archivos.
Ejemplo de escritura y lectura:
using System.IO;
string path = "example.txt";File.WriteAllText(path, "¡Hola, .NET!");
string content = File.ReadAllText(path);Console.WriteLine(content); // ¡Hola, .NET!5. System.Threading.Tasks — programación asíncrona
Enfoque moderno para la asincronía mediante las palabras clave async y await. Clases principales
También en la biblioteca
Biblioteca estándar de Go (Golang): guía completa
Geolocalización y mapas en Go: revisión de bibliotecas y ejemplos de código
Generación de informes PDF en Swift: PDFKit y UIPrintPageRenderer
Trabajo con Apache Kafka en C# (.NET): biblioteca Confluent.Kafka
Trabajo con imágenes en PHP: bibliotecas GD e Imagick