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 standardpublic 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);Caractéristiques
Section intitulée « Caractéristiques »- Type référence (alloué sur le tas)
- Immuable par défaut (accesseurs
init) - Implémente
IEquatable<T>automatiquement - Remplace
Equals,GetHashCodeetToString
Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »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.