Biblioteca estándar de C# (.NET): revisión completa
La biblioteca estándar de .NET (Base Class Library, BCL) es la base fundamental para el desarrollo en C#. Proporciona miles de clases, interfaces, estructuras y enumeraciones listas para usar que cubren prácticamente todos los aspectos de la programación: desde trabajar con números y cadenas hasta la comunicación en red y el acceso a bases de datos. En esta revisión, exploraremos los espacios de nombres clave y sus capacidades.
Espacio de nombres System: la base fundamental
El espacio de nombres System contiene los tipos de datos básicos utilizados en todas las aplicaciones de C#. Esto incluye:
- Tipos primitivos:
Boolean,Byte,Int32,Double,Char,Stringy otros. Cada uno tiene métodos para conversión, comparación y formato. - Clase
Math: proporciona constantes (π, e) y métodos estáticos para cálculos trigonométricos, logarítmicos y estadísticos. - Clase
Convert: permite convertir tipos de datos de forma segura (por ejemplo, una cadena a un número). - Clase
Console: gestiona la entrada y salida en una aplicación de consola.
using System;
int a = 42;double b = Math.Sqrt(a);string text = Convert.ToString(a);Console.WriteLine($"La raíz cuadrada de {text} es {b}");System.Collections y System.Collections.Generic: trabajo con colecciones
Estos espacios de nombres contienen clases para almacenar y gestionar grupos de objetos. Las aplicaciones modernas deben usar las versiones genéricas de System.Collections.Generic, ya que proporcionan seguridad de tipos y un mayor rendimiento.
List<T>— un arreglo dinámico.Dictionary<TKey, TValue>— una colección de clave-valor.Queue<T>yStack<T>— implementaciones de cola y pila.HashSet<T>— un conjunto de elementos únicos.
using System.Collections.Generic;
var numbers = new List<int> { 1, 2, 3, 4, 5 };numbers.Add(6);numbers.Remove(3);
var map = new Dictionary<string, int>{ { "uno", 1 }, { "dos", 2 }};
if (map.ContainsKey("uno")) Console.WriteLine(map["uno"]);System.Linq: lenguaje integrado de consultas
LINQ (Language Integrated Query) permite realizar consultas a colecciones, bases de datos, XML y otras fuentes de datos utilizando una sintaxis unificada. Los principales métodos de extensión se definen en el espacio de nombres System.Linq:
Where— filtrado.Select— proyección.OrderBy/ThenBy— ordenamiento.GroupBy— agrupación.Aggregate,Sum,Count— operaciones de agregación.
using System.Linq;
int[] scores = { 85, 92, 78, 95, 88 };var highScores = scores .Where(s => s >= 90) .OrderByDescending(s => s) .Select(s => $"Puntuación: {s}");
foreach (var item in highScores) Console.WriteLine(item);System.IO: trabajo con el sistema de archivos y flujos
El espacio de nombres System.IO proporciona clases para leer/escribir archivos, trabajar con directorios y gestionar flujos de datos. Las clases principales son:
FileyFileInfo— métodos estáticos y de instancia para trabajar con archivos.DirectoryyDirectoryInfo— gestión de carpetas.StreamReader/StreamWriter— lectura y escritura de archivos de texto.