IRONSOFTWAREHOME
ENTWICKLER-UPDATES

C# Switch Pattern Matching (Wie es für Entwickler funktioniert)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 23. April 2026

Das Arbeiten mit PDF-Dateien in C# umfasst häufig das Handling verschiedener Dokumenttypen, Aktionen oder Datenquellen. Traditionell verlassen sich Entwickler möglicherweise auf lange Wenn-Sonst-Ketten oder verschachtelte Switch-Anweisungen, um verschiedene Eingabewerte und Typen oder Ausgabentscheidungen zu verwalten. Aber mit modernen C#-Funktionen wie Switch-Musterabgleich kann Ihr Code weitaus eleganter, lesbarer und wartungsfreundlicher werden.

In Kombination mit einer leistungsstarken PDF-Bibliothek wie IronPDF ermöglicht Ihnen der Switch-Musterabgleich, intelligentere, sauberere Logik für die Dokumentverarbeitung zu erstellen. In diesem Artikel werden wir untersuchen, wie Sie die erweiterten Musterabgleichs-Funktionen von C#—wie Typenmuster, Eigenschaftsmuster und relationale Muster—neben IronPDF nutzen können, um Ihre PDF-Erstellungs-Workflows zu optimieren.

What is Switch Pattern Matching in C#?

Der Switch-Musterabgleich ist eine Funktion, die in C# 7 eingeführt wurde und in späteren Versionen kontinuierlich verbessert wurde. Im Gegensatz zu herkömmlichen Switch-Anweisungen, die nur konstante Werte abgleichen, ermöglicht Ihnen der Musterabgleich die Auswertung von Typen, Eigenschaften und Bedingungen innerhalb eines einzigen Ausdrucks. Das folgende Beispiel zeigt, wie diese Funktion funktioniert.

Beispielsyntax

switch (input)
{
    case int i when i > 0:
        Console.WriteLine("Positive integer");
        break;
    case string s:
        Console.WriteLine($"It's a string: {s}");
        break;
    default:
        Console.WriteLine("Unknown type");
        break;
}

Dieser Code verwendet Typenmuster, relationale Operatoren und ein Nullkonstantenmuster, um mehrere Fälle prägnant zu bearbeiten. Diese Technik verbessert die Lesbarkeit des Codes erheblich mit prägnanterer Syntax und unterstützt komplexere Logik.

Warum Switch Pattern Matching mit IronPDF kombinieren?

C# Switch-Musterabgleich (Wie es für Entwickler funktioniert): Abbildung 1 - IronPDF-Startseite

IronPDF ist eine leistungsstarke .NET-Komponente zur Erstellung und Bearbeitung von PDFs aus HTML, Bildern oder Rohtext. Viele reale Anwendungsfälle beinhalten die Verarbeitung unterschiedlicher Eingabemuster: einige Dokumente können von URLs stammen, andere von HTML-Strings und wieder andere von Datei-Uploads.

Anstatt Ausdrücke mit umständlichen Wenn-Bedingungen zu testen, ermöglicht Ihnen der Switch-Musterabgleich, musterbasierte Logik effizient zu unterstützen. Es ermöglicht Ihnen, festzulegen, wie Ihre Anwendung auf verschiedene Objekttypen, angegebene Konstanten oder sogar boolesche Ausdrücke reagiert—wobei der Eingabeausdruck selbst den Workflow steuert.

Gängige Anwendungsfälle in IronPDF mit Pattern Matching

Im vorherigen Beispiel haben wir uns angesehen, wie die Grundsyntax aussieht, aber jetzt sehen wir sie in Aktion. Die folgenden Codebeispiele sind einige reale PDF-Aufgaben, die von der Kombination von IronPDF mit C#-Musterabgleich profitieren.

1. mehrere Eingabeformate mit Typ- und Eigenschaftsmustern handhaben

Angenommen, Ihre Methode akzeptiert verschiedene Eingabeformate: HTML, eine Uri oder eine lokale .html-Datei. Mit Typenmustern, Eigenschaftsmustern und Nullmustern können Sie diese Fälle mühelos unterscheiden.

using System;
using System.IO;
using IronPdf;
class Program
{
    static void Main()
    {
        object input = new Uri("https://example.com"); // Try changing this to: "<html><body>Hello</body></html>" or new FileInfo("sample.html")
        var renderer = new ChromePdfRenderer();
        PdfDocument pdfDoc = input switch
        {
            string html when html.StartsWith("<html>") =>
                renderer.RenderHtmlAsPdf(html),
            Uri url =>
                renderer.RenderUrlAsPdf(url.ToString()),
            FileInfo { Extension: ".html" } file =>
                renderer.RenderHtmlAsPdf(File.ReadAllText(file.FullName)),
            null => throw new ArgumentNullException("Input was null."),
            _ => throw new ArgumentException("Unsupported input type for PDF conversion.")
        };
        pdfDoc.SaveAs("example-input-types.pdf");
        Console.WriteLine("PDF created: example-input-types.pdf");
    }
}

Hier machen das Eigenschaftsmuster (FileInfo { Extension: ".html" }) und das Nullkonstantenmuster (case null) die Logik ausdrucksstärker und robuster.

2. dynamisches Formatieren von PDFs mit Positions- und Deklarationsmustern

Angenommen, Sie verwenden einen PdfRequest-Datensatz, der eine Formatzeichenfolge enthält. Sie können Positionsmuster, Deklarationsmuster und Zeichenkettenkonstanten anwenden, um das PDF-Format anzupassen.

using System;
using IronPdf;
public record PdfRequest(string Title, string Content, string Format);
class Program
{
    static void Main()
    {
        PdfRequest request = new("My Report", "<h1>Monthly Report</h1><p>Generated by IronPDF.</p>", "A4");
        var renderer = new ChromePdfRenderer();
        // Use fully qualified enum to avoid IronWord conflict
        renderer.RenderingOptions = request switch
        {
            PdfRequest { Format: "A4" } => new IronPdf.ChromePdfRenderOptions
            {
                PaperSize = IronPdf.Rendering.PdfPaperSize.A4
            },
            PdfRequest { Format: "Letter" } => new IronPdf.ChromePdfRenderOptions
            {
                PaperSize = IronPdf.Rendering.PdfPaperSize.Letter
            },
            _ => new IronPdf.ChromePdfRenderOptions
            {
                PaperSize = IronPdf.Rendering.PdfPaperSize.Legal // Fallback
            }
        };
        var pdf = renderer.RenderHtmlAsPdf(request.Content);
        pdf.SaveAs("example-formatted.pdf");
        Console.WriteLine("PDF created: example-formatted.pdf");
    }
}

Diese Nutzung zeigt, wie der Ausdruck die entsprechende Eigenschaft innerhalb des Datensatzes abgleicht, indem logische Muster basierend auf erwarteten Werten befolgt werden.

Ausgangsgrößen

C# Switch-Musterabgleich (Wie es für Entwickler funktioniert): Abbildung 2 - Größenunterschiede in PDF-Ausgaben

3. rollenbasierte PDFs mit Var und Not Patterns

Verwenden Sie Var-Muster und Not-Muster, um Benutzerrollen zu behandeln und gleichzeitig Null- oder unerwartete Zustände zu vermeiden.

using System;
using IronPdf;
public abstract record UserRole;
public record Admin(string Email) : UserRole;
public record Viewer(string Email) : UserRole;
public record Guest() : UserRole;
class Program
{
    static void Main()
    {
        UserRole currentUser = new Admin("admin@example.com"); // Try changing to Viewer or Guest
        var pdf = currentUser switch
        {
            Admin { Email: var email } =>
                new ChromePdfRenderer().RenderHtmlAsPdf($"<h1>Admin Dashboard</h1><p>Email: {email}</p>"),
            Viewer =>
                new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Viewer Summary</h1><p>Access limited.</p>"),
            Guest =>
                new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Guest Mode</h1><p>Please sign in.</p>"),
            not null =>
                throw new UnauthorizedAccessException("Unknown role type."),
            null =>
                throw new ArgumentNullException("Role cannot be null.")
        };
        pdf.SaveAs("example-role.pdf");
        Console.WriteLine("PDF created: example-role.pdf");
    }
}

Diese Struktur verbessert die Sicherheit und Lesbarkeit des Codes, während temporäre Variablendeklarationen wie var email genutzt werden. Das folgende Bild zeigt die verschiedenen PDF-Dokumente, die basierend auf unterschiedlichen Eingabewerten erstellt wurden.

C# Switch-Musterabgleich (Wie es für Entwickler funktioniert): Abbildung 3 - Rollenbasierte Ausgabe

4. relationales Pattern Matching auf der Grundlage von Benutzerdaten

Müssen Sie unterschiedliche PDFs je nach Benutzerlevel generieren? Versuchen Sie, zwei relationale Muster zu verwenden, um zu testen, ob die Eingabe in einen bestimmten Bereich fällt.

using System;
using IronPdf;
class Program
{
    static void Main()
    {
        int userScore = 85; // Try other values: 45, 70, 101
        string message = userScore switch
        {
            < 60 => "Needs Improvement",
            >= 60 and < 80 => "Satisfactory",
            >= 80 and <= 100 => "Excellent",
            _ => "Invalid score"
        };
        var html = $"<h1>Score Report</h1><p>Score: {userScore}</p><p>Result: {message}</p>";
        var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);
        pdf.SaveAs("example-score.pdf");
        Console.WriteLine("PDF created: example-score.pdf");
    }
}

Die relationalen Operatoren und booleschen Ausdrücke halten den Code prägnant und ausdrucksstark.

Ausgabe

C# Switch-Musterabgleich (Wie es für Entwickler funktioniert): Abbildung 4 - Punktbasierte Ausgabe

Tipps für die Implementierung dieses Musters in Ihren Projekten

C# Switch-Musterabgleich (Wie es für Entwickler funktioniert): Abbildung 5 - C# Musterabgleich-Spickzettel

  • Verwenden Sie Aufzeichnungstypen für saubere und unveränderliche Datensätze.
  • Bevorzugen Sie Switch-Ausdrücke gegenüber Wenn-Sonst-Pyramiden für saubere Logik.
  • Verwenden Sie Not-Muster und Verwerfungs-Muster (_) um irrelevante Übereinstimmungen zu ignorieren.
  • Fügen Sie Standardfälle hinzu um unbekannte Eingaben frühzeitig abzufangen.
  • Komplexe Fälle ausgliedern in Hilfsmethoden für bessere Lesbarkeit.

Nutzen in der realen Welt

  • Saubererer Code: Keine tief verschachtelten if-else- oder switch-case-Blöcke mehr
  • Vereinfachtes Testen: Isolierte Testfälle vereinfachen das Unit-Testing.
  • Flexibilität: Logik lässt sich beim Hinzufügen neuer Eingabetypen einfach erweitern.
  • Bessere Trennung der Zuständigkeiten: Fokus der Logik ausschließlich auf die Eingabe-/Ausgabetransformation

Abschluss: Modernisieren Sie Ihre PDF-Logik

Der Switch-Musterabgleich ist mehr als nur eine syntaktische Verbesserung, er ist ein leistungsfähiges Paradigma zur Erstellung sichererer, ausdrucksstärkerer Codes. In Kombination mit den flexiblen Rendering-Funktionen von IronPDF können Sie intelligentere und skalierbarere Dokumenterstellungspipelines mit minimalem Code erstellen.

Egal ob Sie einen Berichtsgenerator, eine Dokumentenvorschau oder ein dynamisches Vorlagensystem erstellen, versuchen Sie, Musterabgleich in Ihre IronPDF-Implementierung einzubauen. Sie werden schnell die Vorteile in Klarheit, Kontrolle und Wartbarkeit sehen.

Wollen Sie IronPDF selbst ausprobieren?

Laden Sie die kostenlose Testversion herunter, um die leistungsstarken Funktionen von IronPDF selbst auszuprobieren, bevor Sie eine Lizenz erwerben.

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

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.