Aller au contenu

record class

Contexte : record class (ou simplement record) est un type référence qui se comporte comme une classe mais avec une sémantique d’égalité de valeur.

// Syntaxe standard
public record class Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
}
// Syntaxe positionnelle (le compilateur génère les propriétés init et un déconstructeur)
public record class Employee(string Name, int Id);
  • Type référence (alloué sur le tas)
  • Immuable par défaut (accesseurs init)
  • Implémente IEquatable<T> automatiquement
  • Remplace Equals, GetHashCode et ToString

Entités de domaine dans l’event sourcing : Les enregistrements sont utilisés pour représenter des événements (par exemple UserCreated, OrderShipped) car ils sont immuables et l’égalité repose sur le contenu, non sur l’identité.

Exemple : En C#, System.Environment n’est pas un enregistrement, mais les enregistrements sont largement utilisés dans les bibliothèques de programmation fonctionnelle comme LanguageExt.