
C# Record (Funktionsweise für Entwickler)
C#-Record ist ein leistungsstarkes Feature, das eingeführt wurde, um die Erstellung unveränderlicher Datenmodelle zu vereinfachen und das Programmiererlebnis zu verbessern, indem Boilerplate-Code reduziert wird. Dieses Tutorial zielt darauf ab, das Konzept von Records in C# für Anfänger zu vereinfachen und führt Sie durch ihre Syntax, Anwendung und Vorteile.
Ob es sich um Datentransferobjekte, Konfigurationen oder einfach um einen effizienten Weg zur Darstellung von Daten handelt, C#-Records bieten einen prägnanten und entwicklerfreundlichen Ansatz. Wir werden später im Artikel auch über IronPDF sprechen.
Was ist ein C# Datensatz?
Ein Record in C# ist ein Referenztyp, der eine vereinfachte Syntax zur Definition unveränderlicher Datenmodelle bietet. Im Gegensatz zu traditionellen Klassendefinitionen betont ein Record Wert-basierte Gleichheit statt Referenzgleichheit. Dies bedeutet, dass zwei Record-Instanzen als gleich angesehen werden, wenn ihre Eigenschaftswerte identisch sind, nicht nur, weil sie sich auf dieselbe Objektstelle im Speicher beziehen.
Datensatztypen: Klasse und Struktur
Es gibt zwei Haupttypen von Records in C#:
- Datensatzklasse: Der Standarddatensatztyp, der ein Referenztyp ist.
- Record-Struktur: Diese wurde für Szenarien eingeführt, die Werttypen erfordern. Sie ist standardmäßig unveränderlich und bietet einen wertbasierten Vergleich ähnlich wie Record-Klassen.
Datensatz-Erklärung
Die Deklaration eines Records ist unkompliziert. Sie können einen Record mit dem Schlüsselwort record gefolgt von dem Typ (Klasse oder Struktur) und dem Namen des Records definieren. Zum Beispiel kann ein einfacher Personen-Record deklariert werden als:
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)Diese Deklaration enthält positionale Parameter für Vorname und Nachname, die im Hintergrund öffentliche Eigenschaften und einen Hauptkonstruktor für diese Eigenschaften generieren.
Die unveränderliche Natur von Datensätzen
Records sind so konzipiert, dass sie unveränderlich sind, was bedeutet, dass die Eigenschaftswerte einer Record-Instanz nach ihrer Erstellung nicht geändert werden können. Diese Unveränderlichkeit ist entscheidend für die Erstellung vorhersehbarer und threadsicherer Anwendungen, insbesondere bei parallelen Operationen.
Unveränderliche Datensatzstruktur
Eine unveränderliche Record-Struktur wird ähnlich wie eine Record-Klasse deklariert, jedoch mit der record struct-Syntax. Sie kombiniert die Unveränderlichkeit und wertbasierte Vergleichbarkeit von Records mit den Leistungsmerkmalen eines Werttyps:
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)Arbeiten mit Datensätzen
Records vereinfachen die Erstellung und Verwendung von datenorientierten Typen. Sie unterstützen Vererbung, ermöglichen nicht-destruktive Mutation und bieten integrierte Formatierung für einfacheres Debuggen. Lassen Sie uns diese Funktionen durch Beispiele erkunden.
Erstellen und Vergleichen von Datensätzen
Betrachten Sie das folgende Beispiel, bei dem wir zwei Instanzen eines Personen-Records erstellen:
var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: TrueDim person1 = New Person("Iron", "Software")
Dim person2 = New Person("Iron", "Software")
Console.WriteLine(person1 = person2) ' Output: TrueObwohl person1 und person2 zwei unterschiedliche Instanzen sind, werden sie aufgrund ihrer Eigenschaftswerte als gleich angesehen, was die wertbasierte Gleichheit demonstriert. Dies ist ein bedeutender Unterschied zum Standardverhalten von Referenztypen, die sich auf Referenzgleichheit konzentrieren.
Immutable Eigenschaften
Records sind von Design her unveränderlich. Das bedeutet, dass Sie die Eigenschaftswerte einer Record-Instanz nach ihrer Erstellung nicht ändern können.
// This will result in a compilation error
// person1.FirstName = "Jane";' This will result in a compilation error
' person1.FirstName = "Jane";Vererbung mit Datensätzen
Records unterstützen Vererbung und ermöglichen es Ihnen, eine Hierarchie von Datenmodellen zu erstellen. So können Sie einen Basis-Record erweitern:
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)Dieses Mitarbeiter-Record erweitert Person und fügt die zusätzliche Abteilung-Eigenschaft hinzu.
Erweiterte Datensatzfunktionen
Nicht-destruktive Mutation
Records bieten eine integrierte Methode, um eine neue Record-Instanz aus einer bestehenden mit einigen geänderten Eigenschaften zu erstellen, bekannt als nicht-destruktive Mutation.
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" }Eingebaute Formatierung
Records kommen mit integrierter Formatierung für einfacheres Debuggen und Logging, die automatisch eine Zeichenfolgenrepräsentation ihrer Eigenschaften bereitstellt.
Console.WriteLine(person1);Console.WriteLine(person1)Vorteile der Verwendung von C#-Records
- Vereinfachte Syntax: Records reduzieren den Bedarf an Boilerplate-Code und machen Ihre Modelle dadurch prägnanter und lesbarer.
- Unveränderliche Datenmodelle: Die Unveränderlichkeit von Datensätzen trägt zur Erstellung threadsicherer Anwendungen bei.
- Wertbasierte Gleichheit: Datensätze verwenden wertbasierte Gleichheit anstelle von Referenzgleichheit, ideal für datenzentrierte Typen.
- Unterstützung für Vererbung: Datensätze können von anderen Datensätzen erben, was die Wiederverwendung von Code und hierarchische Datenmodelle ermöglicht.
Einführung in IronPDF: Eine C#-PDF-Bibliothek

IronPDF-Übersicht ist eine PDF-Bibliothek für .NET-Entwickler, entworfen zur Erstellung, Bearbeitung und Manipulation von PDF-Dokumenten innerhalb C#-Anwendungen. IronPDF unterstützt das Rendern von PDFs aus HTML-Inhalten, CSS, Bildern und JavaScript.
Seine Kernkompetenz liegt in der Erstellung von PDF-Dokumenten aus Webinhalten und bietet einen optimierten Ansatz zur Konvertierung von HTML-Zeichenfolgen, URLs und ASPX-Webformularen in PDF-Dateien. IronPDF arbeitet effizient in verschiedenen Anwendungstypen, einschließlich Formulananwendungen, Serveranwendungen und Webanwendungen.
Wie wird die IronPDF-Bibliothek installiert
Die Installation von IronPDF ist unkompliziert und kann über den NuGet-Package-Manager in Visual Studio durchgeführt werden. Folgen Sie diesen Schritten:
- Navigieren Sie in Visual Studio zu Lösungsexplorer, klicken Sie mit der rechten Maustaste auf Verweise und wählen Sie NuGet-Pakete verwalten.
- Wählen Sie im NuGet-Paket-Manager 'Durchsuchen' aus und suchen Sie nach 'IronPDF'.
- Finden Sie das IronPDF-Paket und klicken Sie auf Installieren.

Alternativ können Sie es mit der folgenden Befehlszeile in der Package Manager Console installieren:
Beispiel: Verwendung eines C#-Records mit IronPDF
Betrachten wir ein praktisches Beispiel, bei dem wir ein C#-Record verwenden, um Daten zu halten, die wir dann zur Erstellung eines PDF-Dokuments mit IronPDF nutzen:
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 ClassDieses Beispiel erstellt ein einfaches Person-Record und verwendet dann IronPDF, um ein PDF-Dokument zu generieren, das den Namen der Person anzeigt. Es zeigt, wie nahtlos C#-Records in die PDF-Erstellung in .NET-Anwendungen integriert werden können.

IronPDF-Lizenzierung
IronPDF ist ein kommerzielles Produkt, das verschiedene Lizenzen bietet, die auf unterschiedliche Bedürfnisse zugeschnitten sind, einschließlich Einzel- und Geschäftslösungen. Jeder Kauf umfasst eine lebenslange Lizenz und eine 30-tägige Geld-zurück-Garantie. Erkunden Sie IronPDF-Lizenzierungsoptionen, bevor Sie die Lizenz kaufen.
Abschluss
C#-Records stellen einen bedeutenden Fortschritt in der Vereinfachung der Datenmodellierung in .NET-Anwendungen dar. Durch das Verstehen und Nutzen von Records können Entwickler zuverlässigere, wartungsfreundlichere und lesbarere Codebasen erstellen.
Ob Sie an groß angelegten Anwendungen oder einfachen Datenstrukturen arbeiten, die von Records gebotenen Funktionen, von Unveränderlichkeit bis zur wertbasierten Gleichheit, machen sie zu einem unverzichtbaren Werkzeug in Ihrem C#-Toolkit.
IronPDF bietet die Möglichkeit, seine Funktionen mit der IronPDF-Free-Trial zu testen, bevor Sie sich für einen Kauf entscheiden. Wenn die Software Ihre Anforderungen erfüllt, können Sie eine Lizenz ab $999 erwerben.

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.
Verwandte Artikel


