Records : des types immuables en une ligne
DébutantUn record est un type conçu pour représenter des données, avec égalité par valeur et immuabilité par défaut — beaucoup plus concis qu'une classe classique.
// Une seule ligne remplace une classe avec constructeur, propriétés,
// Equals(), GetHashCode() et ToString()
public record Utilisateur(string Nom, string Email, int Age);
var u1 = new Utilisateur("Alice", "alice@example.com", 30);
var u2 = new Utilisateur("Alice", "alice@example.com", 30);
Console.WriteLine(u1 == u2); // True (égalité par valeur, pas par référence)
Console.WriteLine(u1); // Utilisateur { Nom = Alice, Email = alice@example.com, Age = 30 }
// "with" crée une copie modifiée sans muter l'original
var u3 = u1 with { Age = 31 };
record struct fait la même chose mais alloue sur la pile (utile pour de petites structures fréquemment créées, pour éviter la pression sur le GC).