Passer au contenu du pied de page
.NET AIDE

C# Record (Comment ça fonctionne pour les développeurs)

Record C# est une fonctionnalité puissante introduite pour faciliter la création de modèles de données immuables et pour améliorer l'expérience de codage en réduisant le code standard. Ce tutoriel vise à simplifier le concept des records en C# pour les débutants, vous guidant à travers leur syntaxe, leur utilisation et leurs avantages.

Que vous travailliez avec des objets de transfert de données, des configurations, ou que vous ayez simplement besoin d'une manière efficace de représenter des données, les records C# offrent une approche concise et conviviale pour les développeurs. Nous parlerons également de IronPDF plus tard dans l'article.

Qu'est-ce qu'un record C# ?

Un record en C# est un type de référence qui fournit une syntaxe simplifiée pour définir des modèles de données immuables. Contrairement aux définitions de classe traditionnelles, un record met l'accent sur l'égalité basée sur la valeur plutôt que sur l'égalité de référence. Cela signifie que deux instances de record sont considérées comme égales si leurs valeurs de propriété sont identiques, et pas seulement parce qu'elles se réfèrent à la même position d'objet en mémoire.

Types de records : Classe et Structure

Il y a deux principaux types de records en C# :

  • Classe de record : Le type de record par défaut, qui est un type de référence.
  • Structure de record : Introduite pour les scénarios nécessitant des types de valeur, elles sont immuables par défaut et offrent une comparaison basée sur la valeur similaire aux classes de record.

Déclaration de record

Déclarer un record est simple. Vous pouvez définir un record en utilisant le mot clé record suivi du type (classe ou structure) et du nom du record. Par exemple, un simple record de personne peut être déclaré comme suit :

public record class Person(string FirstName, string LastName);
public record class Person(string FirstName, string LastName);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public record class Person(string FirstName, string LastName)
$vbLabelText   $csharpLabel

Cette déclaration inclut des paramètres positionnels pour Prenom et Nom, qui, en coulisse, génèrent des propriétés publiques et un constructeur principal pour ces propriétés.

La nature immuable des records

Les records sont conçus pour être immuables, ce qui signifie qu'une fois une instance de record créée, ses valeurs de propriété ne peuvent pas être modifiées. Cette immuabilité est cruciale pour créer des applications prévisibles et sûres pour les threads, en particulier lors de la gestion d'opérations concurrentes.

Structure de record immuable

Une structure de record immuable est déclarée de la même manière qu'une classe de record mais en utilisant la syntaxe record struct. Elle combine l'immuabilité et la comparaison basée sur la valeur des records avec les avantages de performance d'un type de valeur :

public readonly record struct ImmutablePerson(string FirstName, string LastName);
public readonly record struct ImmutablePerson(string FirstName, string LastName);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public readonly record struct ImmutablePerson(string FirstName, string LastName)
$vbLabelText   $csharpLabel

Travailler avec les records

Les records simplifient la création et l'utilisation de types centrés sur les données. Ils supportent l'héritage, permettent la mutation non-destructive et fournissent un formatage intégré pour un débogage plus facile. Explorons ces fonctionnalités à travers des exemples.

Création et comparaison des records

Considérez l'exemple suivant où nous créons deux instances d'un record de personne :

var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: True
var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: True
Dim person1 = New Person("Iron", "Software")
Dim person2 = New Person("Iron", "Software")
Console.WriteLine(person1 = person2) ' Output: True
$vbLabelText   $csharpLabel

Bien que personne1 et personne2 soient deux instances distinctes, elles sont considérées comme égales en fonction de leurs valeurs de propriété, illustrant l'égalité basée sur la valeur. Ceci est un écart significatif par rapport au comportement par défaut des types de référence, qui se concentre sur l'égalité de référence.

Propriétés immuables

Par conception, les propriétés des records sont immuables. Cela signifie que vous ne pouvez pas modifier les valeurs de propriété d'une instance de record après sa création.

// This will result in a compilation error
// person1.FirstName = "Jane";
// This will result in a compilation error
// person1.FirstName = "Jane";
' This will result in a compilation error
' person1.FirstName = "Jane";
$vbLabelText   $csharpLabel

Héritage avec les records

Les records supportent l'héritage, vous permettant de créer une hiérarchie de modèles de données. Voici comment vous pouvez étendre un record de base :

public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName);
public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName)
$vbLabelText   $csharpLabel

Ce Employé record étend Personne, ajoutant la propriété supplémentaire Département.

Fonctionnalités avancées des records

Mutation non-destructive

Les records fournissent une méthode intégrée pour créer une nouvelle instance de record à partir d'une instance existante avec certaines propriétés modifiées, connue sous le nom de mutation non-destructive.

var updatedPerson = person1 with { FirstName = "Jane" };
var updatedPerson = person1 with { FirstName = "Jane" };
'INSTANT VB TODO TASK: C# 'with expressions' are not converted by Instant VB:
'var updatedPerson = person1 with { FirstName = "Jane" }
$vbLabelText   $csharpLabel

Formatage intégré

Les records sont livrés avec un formatage intégré pour un débogage et une journalisation plus faciles, fournissant automatiquement une représentation sous forme de chaîne de leurs propriétés.

Console.WriteLine(person1);
Console.WriteLine(person1);
Console.WriteLine(person1)
$vbLabelText   $csharpLabel

Avantages de l'utilisation des records C

  • Simplification de la syntaxe : Les records réduisent le besoin de code standard, rendant vos modèles plus concis et lisibles.
  • Modèles de données immuables : La nature immuable des records aide à créer des applications sûres pour les threads.
  • Égalité basée sur la valeur : Les records utilisent l'égalité basée sur la valeur au lieu de l'égalité de référence, idéale pour les types centrés sur les données.
  • Soutien pour l'héritage : Les records peuvent hériter d'autres records, permettant la réutilisation de code et des modèles de données hiérarchiques.

Introduction à IronPDF : Une bibliothèque PDF C

C# Record (Comment ça fonctionne pour les développeurs) : Figure 1

Vue d'ensemble IronPDF est une bibliothèque PDF pour les développeurs .NET, conçue pour générer, éditer et manipuler des documents PDF au sein des applications C#. IronPDF supporte le rendu PDF à partir de contenu HTML, CSS, Images et JavaScript.

Sa capacité principale réside dans la création de documents PDF à partir de contenu web, offrant une approche simplifiée pour convertir des chaînes HTML, des URLs, et des formulaires ASPX en fichiers PDF. IronPDF fonctionne efficacement à travers différents types d'applications, y compris les applications de formulaires, les applications serveur, et les applications web.

Comment installer la bibliothèque IronPDF

Installer IronPDF est simple et peut être accompli via le gestionnaire de packages NuGet dans Visual Studio. Suivez ces étapes :

  1. Dans Visual Studio, naviguez vers l'Explorateur de solutions, faites un clic droit sur Références et sélectionnez Gérer les paquets NuGet.
  2. Dans le gestionnaire de paquets NuGet, sélectionnez Parcourir et recherchez "IronPdf".
  3. Trouvez le paquet IronPDF et cliquez sur Installer.

C# Record (Comment ça fonctionne pour les développeurs) : Figure 2

Alternativement, vous pouvez l'installer en utilisant la console du gestionnaire de paquets avec la commande :

Install-Package IronPdf

Exemple : Utilisation d'un record C# avec IronPDF

Considérons un exemple pratique où nous utilisons un record C# pour contenir des données que nous utilisons ensuite pour générer un document PDF avec IronPDF :

public record Person(string FirstName, string LastName);

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of the Person record.
        var person = new Person("Iron", "Developer");

        // Initialize a new renderer object for generating PDF files using Chrome's rendering engine.
        var renderer = new IronPdf.Rendering.ChromePdfRenderer();

        // Render an HTML string as a PDF document.
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");

        // Save the PDF to the specified location.
        pdf.SaveAs("PersonRecord.pdf");
    }
}
public record Person(string FirstName, string LastName);

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of the Person record.
        var person = new Person("Iron", "Developer");

        // Initialize a new renderer object for generating PDF files using Chrome's rendering engine.
        var renderer = new IronPdf.Rendering.ChromePdfRenderer();

        // Render an HTML string as a PDF document.
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");

        // Save the PDF to the specified location.
        pdf.SaveAs("PersonRecord.pdf");
    }
}
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public record Person(string FirstName, string LastName)

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create an instance of the Person record.
		Dim person As New Person("Iron", "Developer")

		' Initialize a new renderer object for generating PDF files using Chrome's rendering engine.
		Dim renderer = New IronPdf.Rendering.ChromePdfRenderer()

		' Render an HTML string as a PDF document.
		Dim pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>")

		' Save the PDF to the specified location.
		pdf.SaveAs("PersonRecord.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Cet exemple crée un simple record Personne et utilise ensuite IronPDF pour générer un document PDF affichant le nom de la personne. Il montre comment les records C# peuvent s'intégrer de manière transparente avec la génération de PDF dans les applications .NET.

C# Record (Comment ça fonctionne pour les développeurs) : Figure 3

Licences IronPDF

C# Record (Comment ça fonctionne pour les développeurs) : Figure 4

IronPDF est un produit commercial offrant diverses licences adaptées à différents besoins, y compris des options individuelles et commerciales. Chaque achat est accompagné d'une licence à vie et d'une garantie de remboursement de 30 jours. Explorez les options de licence IronPDF avant d'acheter la licence.

Conclusion

Les records C# représentent un pas en avant significatif dans la simplification de la modélisation des données dans les applications .NET. En comprenant et en exploitant les records, les développeurs peuvent créer des bases de code plus fiables, maintenables et lisibles.

Que vous travailliez sur des applications à grande échelle ou des structures de données simples, les fonctionnalités offertes par les records, de l'immuabilité à l'égalité basée sur la valeur, en font un outil indispensable dans votre boîte à outils C#.

IronPDF offre la possibilité de tester ses fonctionnalités à l'aide du IronPDF Essai Gratuit avant de décider d'un achat. Si vous trouvez que le logiciel répond à vos besoins, vous pouvez acheter une licence à partir de $799.

Questions Fréquemment Posées

Comment puis-je utiliser des enregistrements en C# pour générer un PDF ?

Les enregistrements C# peuvent être utilisés pour stocker des données efficacement, qui peuvent ensuite être utilisées par IronPDF pour générer des documents PDF. Vous pouvez créer un enregistrement pour contenir les données nécessaires et utiliser IronPDF pour rendre ces données dans un format PDF.

Quels sont les avantages d'utiliser les enregistrements C# ?

Les enregistrements C# offrent plusieurs avantages, y compris une syntaxe simplifiée, des modèles de données immuables, l'égalité basée sur la valeur et le support de l'héritage. Ces caractéristiques rendent les enregistrements adaptés à la création de types centrés sur les données concises et fiables.

Comment les enregistrements gèrent-ils l'égalité en C# ?

Les enregistrements en C# mettent l'accent sur l'égalité basée sur la valeur. Cela signifie que deux instances d'enregistrement sont considérées comme égales si les valeurs de leurs propriétés correspondent, indépendamment de leur emplacement en mémoire.

Comment déclare-t-on un enregistrement en C# ?

Un enregistrement en C# est déclaré en utilisant le mot-clé record suivi du type (classe ou struct) et du nom de l'enregistrement. Par exemple, public record class Person(string FirstName, string LastName);.

Quelle est la différence entre les classes d'enregistrement et les structs d'enregistrement ?

Les classes d'enregistrement sont des types de référence, tandis que les structs d'enregistrement sont des types de valeur. Les deux offrent l'immuabilité et la comparaison basée sur la valeur, mais ils diffèrent dans l'allocation de mémoire et les cas d'utilisation.

Pouvez-vous modifier les propriétés d'un enregistrement C# après sa création ?

Les enregistrements C# sont conçus pour être immuables, ce qui signifie que les propriétés ne peuvent pas être modifiées après la création de l'enregistrement. Cependant, vous pouvez effectuer une mutation non-destructive pour créer une nouvelle instance d'enregistrement avec des propriétés modifiées.

Comment IronPDF améliore-t-il les applications C# ?

IronPDF améliore les applications C# en fournissant des capacités robustes pour générer, éditer et manipuler des documents PDF. Il permet aux développeurs de créer des PDF à partir de contenu HTML, faisant de lui un outil polyvalent pour la gestion des documents.

Comment installe-t-on IronPDF dans un projet .NET?

Vous pouvez installer IronPDF dans un projet .NET en utilisant le gestionnaire de packages NuGet dans Visual Studio ou en exécutant la commande Install-Package IronPdf dans la console du gestionnaire de packages.

Comment fonctionne la mutation non-destructive dans les enregistrements C# ?

La mutation non-destructive dans les enregistrements C# vous permet de créer une nouvelle instance d'enregistrement à partir d'une instance existante avec certaines propriétés modifiées, sans altérer l'instance originale.

À quoi sert une bibliothèque PDF dans le développement C# ?

Une bibliothèque PDF comme IronPDF est utilisée dans le développement C# pour générer, éditer et manipuler des documents PDF. Elle aide les développeurs à intégrer efficacement des fonctionnalités PDF dans leurs applications.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite