Zum Fußzeileninhalt springen
.NET HILFE

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# Record?

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);
public record class Person(string FirstName, string LastName);
$vbLabelText   $csharpLabel

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);
public readonly record struct ImmutablePerson(string FirstName, string LastName);
$vbLabelText   $csharpLabel

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: True
var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: True
$vbLabelText   $csharpLabel

Obwohl 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";
$vbLabelText   $csharpLabel

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);
public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName);
$vbLabelText   $csharpLabel

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" };
var updatedPerson = person1 with { FirstName = "Jane" };
$vbLabelText   $csharpLabel

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);
$vbLabelText   $csharpLabel

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

C#-Record (Wie es für Entwickler funktioniert): Abbildung 1

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:

  1. Navigieren Sie in Visual Studio zu Lösungsexplorer, klicken Sie mit der rechten Maustaste auf Verweise und wählen Sie NuGet-Pakete verwalten.
  2. Wählen Sie im NuGet-Paket-Manager Durchsuchen aus und suchen Sie nach 'IronPdf'.
  3. Finden Sie das IronPDF-Paket und klicken Sie auf Installieren.

C#-Record (Wie es für Entwickler funktioniert): Abbildung 2

Alternativ können Sie es mit der folgenden Befehlszeile in der Package Manager Console installieren:

Install-Package IronPdf

Beispiel: Verwendung von C# Record 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");
    }
}
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");
    }
}
$vbLabelText   $csharpLabel

Dieses 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.

C#-Record (Wie es für Entwickler funktioniert): Abbildung 3

IronPDF-Lizenzierung

C#-Record (Wie es für Entwickler funktioniert): Abbildung 4

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 Ihren Bedarf deckt, können Sie eine Lizenz ab $799 kaufen.

Häufig gestellte Fragen

Wie kann ich Records in C# verwenden, um ein PDF zu erzeugen?

C#-Records können verwendet werden, um Daten effizient zu speichern, die dann von IronPDF zur Erstellung von PDF-Dokumenten genutzt werden können. Sie können ein Record erstellen, um die notwendigen Daten zu halten, und IronPDF verwenden, um diese Daten in ein PDF-Format zu rendern.

Was sind die Vorteile der Verwendung von C#-Records?

C#-Records bieten mehrere Vorteile, darunter vereinfachte Syntax, unveränderliche Datenmodelle, wertbasierte Gleichheit und Unterstützung für Vererbung. Diese Funktionen machen Records geeignet für die Erstellung prägnanter und zuverlässiger datenzentrierter Typen.

Wie handhaben Records die Gleichheit in C#?

Records in C# betonen die wertbasierte Gleichheit. Das bedeutet, dass zwei Record-Instanzen als gleich gelten, wenn ihre Eigenschaftswerte übereinstimmen, unabhängig von ihrem Speicherort.

Wie erklärt man ein Record in C#?

Ein Record in C# wird mit dem record-Schlüsselwort deklariert, gefolgt von dem Typ (Klasse oder Struktur) und dem Namen des Records. Zum Beispiel: public record class Person(string FirstName, string LastName);.

Was ist der Unterschied zwischen Record-Klassen und Record-Strukturen?

Record-Klassen sind Referenztypen, während Record-Strukturen Werttypen sind. Beide bieten Unveränderlichkeit und wertbasierte Vergleichbarkeit, unterscheiden sich jedoch in Bezug auf Speicherzuordnung und Anwendungsfälle.

Können Sie die Eigenschaften eines C#-Records nach der Erstellung ändern?

C#-Records sind dafür ausgelegt, unveränderlich zu sein, was bedeutet, dass die Eigenschaften nach der Erstellung des Records nicht geändert werden können. Sie können jedoch eine nicht-destruktive Mutation durchführen, um eine neue Record-Instanz mit geänderten Eigenschaften zu erstellen.

Wie verbessert IronPDF C#-Anwendungen?

IronPDF verbessert C#-Anwendungen, indem es robuste Funktionen zum Erstellen, Bearbeiten und Verarbeiten von PDF-Dokumenten bietet. Es ermöglicht Entwicklern, PDFs aus HTML-Inhalten zu erstellen und ist ein vielseitiges Werkzeug für das Dokumentenmanagement.

Wie installiert man IronPDF in einem .NET-Projekt?

Sie können IronPDF in einem .NET-Projekt über den NuGet-Paket-Manager in Visual Studio installieren oder indem Sie den Befehl Install-Package IronPdf in der Paket-Manager-Konsole ausführen.

Wie funktioniert die nicht-destruktive Mutation in C#-Records?

Nicht-destruktive Mutation in C#-Records ermöglicht es Ihnen, eine neue Record-Instanz aus einer bestehenden zu erstellen, bei der einige Eigenschaften geändert wurden, ohne die ursprüngliche Instanz zu beeinflussen.

Wofür wird eine PDF-Bibliothek in der C#-Entwicklung verwendet?

Eine PDF-Bibliothek wie IronPDF wird in der C#-Entwicklung zum Erstellen, Bearbeiten und Verarbeiten von PDF-Dokumenten verwendet. Sie hilft Entwicklern, PDF-Funktionalitäten effizient in ihre Anwendungen zu integrieren.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen