AIDE .NET

Enregistrement C# (Comment ça marche pour les développeurs)

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

Qu'il s'agisse d'objets de transfert de données, de configurations ou simplement d'un moyen efficace de représenter des données, les enregistrements C# offrent une approche concise et conviviale pour le développeur. Nous discuterons également de IronPDF plus tard dans l'article.

Qu'est-ce qu'un C# ?

En C#, un enregistrement 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 traditionnelles des classes, un enregistrement met l'accent sur l'égalité des valeurs plutôt que sur l'égalité des références. Cela signifie que deux instances d'enregistrement sont considérées comme égales si les valeurs de leurs propriétés sont identiques, et non pas simplement parce qu'elles font référence au même emplacement d'objet dans la mémoire.

Types d'enregistrements : Classe et structure

Il existe deux principaux types d'enregistrements en C# :

  • Classe enregistrement : Le type d'enregistrement par défaut, qui est un type de référence.
  • Struct d'enregistrement : Introduit pour les scénarios nécessitant des types de valeur, ceux-ci sont immuables par défaut et offrent une comparaison basée sur les valeurs similaire aux classes d'enregistrement.

Déclaration d'enregistrement

La déclaration d'un enregistrement est simple. Vous pouvez définir un enregistrement en utilisant le mot-clé record suivi du type (classe ou struct) et du nom de l'enregistrement. Par exemple, un simple enregistrement 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 FirstName et LastName, qui, sous le capot, génèrent des propriétés publiques et un constructeur principal pour ces propriétés.

La nature immuable des documents

Les enregistrements sont conçus pour être immuables, ce qui signifie qu'une fois qu'une instance d'enregistrement est créée, les valeurs de ses propriétés ne peuvent pas être modifiées. Cette immutabilité est cruciale pour créer des applications prévisibles et sûres, en particulier lorsqu'il s'agit d'opérations simultanées.

Structure d'enregistrement immuable

Un enregistrement struct immuable est déclaré de manière similaire à une classe d'enregistrement mais en utilisant la syntaxe record struct. Il combine l'immuabilité et la comparaison basée sur la valeur des enregistrements 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 des enregistrements

Les enregistrements simplifient la création et l'utilisation de types centrés sur les données. Ils prennent en charge l'héritage, permettent une mutation non destructive et fournissent un formatage intégré pour faciliter le débogage. Explorons ces fonctionnalités à l'aide d'exemples.

Création et comparaison d'enregistrements

Prenons l'exemple suivant, dans lequel nous créons deux instances d'un enregistrement 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 person1 et person2 soient deux instances distinctes, elles sont considérées comme égales en fonction de leurs valeurs de propriété, illustrant ainsi l'égalité basée sur la valeur. Il s'agit d'une différence importante par rapport au comportement par défaut des types de référence, qui se concentre sur l'égalité des références.

Propriétés immuables

Par conception, les propriétés des enregistrements sont immuables. Cela signifie que vous ne pouvez pas modifier les valeurs des propriétés d'un enregistrement 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 enregistrements

Les enregistrements prennent en charge l'héritage, ce qui permet de créer une hiérarchie de modèles de données. Voici comment vous pouvez étendre un enregistrement 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

Cet enregistrement Employee étend Person, en ajoutant la propriété supplémentaire Department.

Fonctions d'enregistrement avancées

Mutation non destructive

Les enregistrements fournissent une méthode intégrée pour créer un nouvel enregistrement à partir d'un enregistrement existant dont certaines propriétés ont été 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 enregistrements sont dotés d'un formatage intégré pour faciliter le débogage et la journalisation, et fournissent 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 C# ; enregistrements

  • Syntaxe simplifiée : Les enregistrements réduisent le besoin de code passe-partout, rendant vos modèles plus concis et lisibles.
  • Modèles de données immuables : La nature immuable des enregistrements aide à créer des applications thread-safe.
  • Égalité basée sur la valeur : Les enregistrements 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.
  • Prise en charge de l'héritage : Les enregistrements peuvent hériter d'autres enregistrements, permettant ainsi la réutilisation de code et des modèles de données hiérarchiques.

Introduction à IronPDF : Une C&num ; Bibliothèque PDF

Enregistrement C# (Comment cela fonctionne pour les développeurs) : Figure 1

Aperçu d'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 d'applications C#. IronPDF prend en charge le rendu de PDFs à 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 rationalisée de la conversion de chaînes HTML, d'URL et de formulaires web ASPX en fichiers PDF. IronPDF fonctionne efficacement dans différents types d'applications, notamment les applications de formulaires, les applications serveur et les applications web.

Comment installer la bibliothèque IronPDF

L'installation d'IronPDF est simple et peut être effectuée via le gestionnaire de paquets NuGet dans Visual Studio. Procédez comme suit :

  1. Dans Visual Studio, accédez à l'explorateur de solutions, faites un clic droit sur References et sélectionnez Manage NuGet Packages.

  2. Dans le gestionnaire de paquets NuGet, sélectionnez Parcourir et recherchez "IronPDF".

  3. Recherchez le paquetage IronPDF et cliquez sur Installer.

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

    Vous pouvez également l'installer à l'aide de la console du gestionnaire de paquets avec la commande :

Install-Package IronPdf
Install-Package IronPdf
SHELL

Exemple : Utilisation de C# ; Enregistrement avec IronPDF

Prenons un exemple pratique dans lequel nous utilisons un enregistrement 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)
    {
        var person = new Person("Iron", "Developer");
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");
        pdf.SaveAs("PersonRecord.pdf");
    }
}
public record Person(string FirstName, string LastName);
class Program
{
    static void Main(string [] args)
    {
        var person = new Person("Iron", "Developer");
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");
        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)
		Dim person As New Person("Iron", "Developer")
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>")
		pdf.SaveAs("PersonRecord.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

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

Enregistrement C# (Comment cela fonctionne pour les développeurs): Figure 3

Licences d'IronPDF

Enregistrement C# (Comment cela 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 enregistrements C# représentent une avancée significative dans la simplification de la modélisation des données dans les applications .NET. En comprenant et en exploitant les enregistrements, les développeurs peuvent créer des bases de code plus fiables, plus faciles à maintenir et plus lisibles.

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

IronPDF offre l'opportunité de tester ses fonctionnalités en utilisant la version d'essai gratuite d'IronPDF avant de se décider à l'achat. Si vous trouvez que le logiciel répond à vos besoins, vous pouvez acheter une licence à partir de $749.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
Déclaration d'utilisation C# (Comment ça marche pour les développeurs)
SUIVANT >
Action C# (Comment ça marche pour les développeurs)