</>
Plan du cours — 11/46

Records : des types immuables en une ligne

Débutant

Un 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).