1. Accueil
  2. Blog
  3. Records en C#
C# .Net

Records en C# : Simplifier la gestion des données

Les Records en C# offrent une approche moderne pour créer des types de données immutables, simplifiant ainsi la gestion des données dans vos applications .NET.

Qu'est-ce qu'un Record en C# ?

Le Record, introduit en C# 9, est un type de référence spécialement conçu pour représenter des données immutables. Ils offrent une syntaxe concise et des fonctionnalités intégrées pour la comparaison par valeur, la sérialisation et la création de copies modifiées.

Syntaxe de base

Voici comment déclarer un Record simple :

public record Person(string FirstName, string LastName, int Age);

Avec cette déclaration, le compilateur génère automatiquement :

  • Des propriétés en lecture seule
  • Un constructeur avec tous les paramètres (tous les paramètres sont obligatoires.)
  • Les méthodes Equals, GetHashCode et ToString (la méthode ToString imprime les valeurs de toutes les propriétés publiques de l'objet.)
  • L'opérateur == et != pour la comparaison par valeur
  • Un support pour la déconstruction

Avantages des Records

Immutabilité par défaut : Les Records encouragent l'écriture de code plus sûr en rendant les données immutables. Cela réduit les erreurs liées aux modifications non intentionnelles d'objets partagés.

Comparaison par valeur : Contrairement aux classes classiques qui comparent les références, les Records comparent automatiquement les valeurs de leurs propriétés.

Suport automatique de la déconstruction : Les records peuvent être automatiquement déconstruit en tuples.

L'utilisation de Records peut considérablement réduire la quantité de code boilerplate dans vos applications.

Modifications avec la syntaxe 'with'

Bien que les Records soient immutables, vous pouvez créer de nouvelles instances avec des valeurs modifiées en utilisant l'expression with :

var person = new Person("Jean", "Dupont", 30);
var olderPerson = person with { Age = 31 };
var isDifferent = person.GetHashCode() != olderPerson.GetHashCode(); // true

record Person(string FirstName, string LastName, int Age);

Records vs Classes : Quand les utiliser ?

Dans votre code il est conseiller d'utiliser des Records quand :

  • Vos données sont principalement immutables
  • Vous avez besoin de comparaisons par valeur
  • Vous manipulez des DTOs (Data Transfer Objects)
  • Vous travaillez avec des modèles de domaine simples

Préférez les classes quand vous avez besoin de :

  • Héritage complexe
  • Contrôle fin sur l'encapsulation
  • De mutabilité

Conclusion

Les Records représentent une évolution naturelle du langage C# vers plus de simplicité et de sécurité dans la gestion des données.

En adoptant les Records dans vos projets .NET, vous bénéficiez d'un code plus concis, plus sûr et plus maintenable. Ils s'intègrent parfaitement dans les architectures modernes et les patterns comme DDD (Domain-Driven Design).

Et si on se rencontrait,
pour de vrai ?

Laissez votre message après le clic !
Vague jaune décorative du footer Black Blue Bees