Bibliothèque standard C# (.NET) : aperçu complet
La bibliothèque standard .NET (Base Class Library, BCL) est un ensemble fondamental de classes, d'interfaces et de types de valeurs qui fait partie de la plateforme .NET. Elle fournit aux développeurs C# des composants prêts à l'emploi pour résoudre des tâches courantes : de la gestion des collections et des fichiers à la communication réseau et à la programmation asynchrone. Dans cet article, nous allons détailler les espaces de noms et les classes clés que tout développeur C# devrait connaître.
1. Espace de noms System — la base de tout
L'espace de noms racine System contient les types fondamentaux :
- Types de données de base :
Object,String,Int32,Double,Boolean, etc. - Utilitaires :
Console(entrée/sortie),Math(fonctions mathématiques),Random(génération de nombres aléatoires). - Gestion des erreurs :
Exceptionet ses descendants (ArgumentException,NullReferenceException, etc.).
Exemple d'utilisation :
using System;
class Program{ static void Main() { Console.WriteLine("Bonjour, .NET !"); double result = Math.Sqrt(144); Console.WriteLine($"Racine carrée de 144 : {result}"); }}2. System.Collections — gestion des collections
Espace de noms pour stocker et gérer des groupes d'objets. Il se divise en collections génériques et non génériques.
Classes principales :
List<T>— tableau dynamique avec accès rapide par index.Dictionary<TKey, TValue>— tableau associatif (table de hachage).Queue<T>— file d'attente (FIFO).Stack<T>— pile (LIFO).HashSet<T>— ensemble d'éléments uniques.
Exemple :
using System.Collections.Generic;
var numbers = new List<int> { 10, 20, 30 };numbers.Add(40);
var lookup = new Dictionary<string, int>{ ["un"] = 1, ["deux"] = 2};
Console.WriteLine(lookup["deux"]); // 23. System.Linq — Language Integrated Query
LINQ permet d'effectuer des requêtes de type SQL sur des collections, des bases de données et du XML. Méthodes d'extension principales :
Where()— filtrage.Select()— projection.OrderBy()— tri.GroupBy()— regroupement.Aggregate()— fonctions d'agrégation (Sum, Count, Average).
Exemple :
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 — gestion des fichiers et des flux
Espace de noms pour les entrées-sorties de données. Classes clés :
File/FileInfo— création, lecture, écriture de fichiers.Directory/DirectoryInfo— gestion des répertoires.StreamReader/StreamWriter— lecture/écriture de flux textuels.FileStream— gestion de bas niveau des fichiers.
Exemple d'écriture et de lecture :
using System.IO;
string path = "example.txt";File.WriteAllText(path, "Bonjour, .NET !");
string content = File.ReadAllText(path);Console.WriteLine(content); // Bonjour, .NET !5. System.Threading.Tasks — programmation asynchrone
Approche moderne de l'asynchronisme via les mots-clés async et await. Classes principales