IRONSOFTWAREHOME
ENTWICKLER-UPDATES

C# Ref-Schlüsselwörter (Wie es für Entwickler funktioniert)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 18. Januar 2026

Das C# ref Schlüsselwort ist ein wesentliches Werkzeug, über das jeder Anfänger lernen sollte. Es wird verwendet, um Argumente durch Referenz anstatt durch Wert zu übergeben, sodass Änderungen, die an der Referenztyp-Variable innerhalb der aufgerufenen Methode vorgenommen werden, sich auch außerhalb widerspiegeln. In diesem Tutorial werden wir die Details des ref-Schlüsselworts durchgehen und verschiedene Konsolencode-Beispiele erkunden, die veranschaulichen, wie es funktioniert.

Einführung in das ref-Schlüsselwort

Wenn Sie einen Methodenparameter in C# übergeben, wird er standardmäßig durch Wert übergeben. Das bedeutet, dass eine Kopie des Parameterwerts erstellt wird und Änderungen, die innerhalb der aufgerufenen Methode vorgenommen werden, keine Auswirkungen auf die ursprüngliche Variable außerhalb der Methode haben. Das ref Schlüsselwort ändert dieses Verhalten und ermöglicht es Ihnen, einen Parameter als Referenz zu übergeben. Wenn ein Parameter durch Referenz übergeben wird, wirken sich alle Änderungen, die innerhalb der Methode vorgenommen werden, direkt auf die ursprüngliche Variable außerhalb der Methode aus.

Schlüsselkonzepte

  • ref Schlüsselwort: Wird verwendet, um anzuzeigen, dass eine Variable als Referenz übergeben wird.
  • Referenzvariablen: Datentypen, die auf den Speicherort verweisen, an dem Daten gespeichert sind.
  • Werttypen: Typen, die die eigentlichen Daten enthalten.
  • Originalvariable: Die Variable außerhalb der Methode, die Änderungen widerspiegelt, die innerhalb der Methode vorgenommen wurden, wenn die ref Schlüsselwörter verwendet werden.

Vergleich mit Referenz

Lassen Sie uns mit dem Verständnis des Konzepts beginnen, wie Variablen durch Referenz übergeben werden. Stellen Sie sich vor, Sie haben eine Methode, die einen Integer-Wert inkrementiert, wie im folgenden Code:

class Program
{
    // Method increments the given integer by one
    static void IncrementByOne(int num)
    {
        num++;
    }

    static void Main()
    {
        int value = 5;
        IncrementByOne(value);
        Console.WriteLine(value);  // Output: 5
    }
}

Im obigen Code bleibt die ursprüngliche value unverändert, obwohl wir num innerhalb der IncrementByOne Methode inkrementiert haben. Dies liegt daran, dass num eine Kopie der ursprünglichen Variable ist und Änderungen daran die Originalvariable nicht beeinflussen.

Verwendung des Schlüsselworts ref

Nun, lassen Sie uns sehen, wie das ref Schlüsselwort dieses Verhalten ändern kann. Wenn Sie ref verwenden, können Sie eine Variable als Referenz an die Methode übergeben, wie in einem der untenstehenden Codebeispiele gezeigt.

class Program
{
    // Method increments the given integer by one using ref
    static void IncrementByOneRef(ref int num)
    {
        num++;
    }

    static void Main()
    {
        int value = 5;
        IncrementByOneRef(ref value);
        Console.WriteLine(value);  // Output: 6
    }
}

Beachten Sie das ref Schlüsselwort sowohl in der Methodensignatur als auch im Aufruf. Dies teilt C# mit, dass Sie die value Variable als Referenz übergeben möchten. Infolgedessen spiegeln die Änderungen, die innerhalb der IncrementByOneRef Methode vorgenommen werden, die Originalvariable value wider.

Arbeiten mit Werttypen

Das ref Schlüsselwort ist besonders nützlich, wenn man mit Typen wie Ganzzahlen, Doubles und Strukturen arbeitet. Diese Typen werden direkt im Speicher gespeichert, und das Übergeben von Referenzen kann zu Leistungsverbesserungen und präziserer Kontrolle über die Datenmanipulation führen.

Ändern von Referenzvariablen

Obwohl das ref Schlüsselwort häufig mit Werttypen assoziiert wird, kann es auch mit Referenztypenvariablen verwendet werden. Referenztypen, wie Klassen und Arrays, speichern eine Referenz auf die tatsächlichen Daten im Speicher anstatt der Daten selbst. Das bedeutet, dass Sie mit einer zeigerähnlichen Struktur umgehen und die Übergabe durch Referenz zu unterschiedlichen Ergebnissen führen kann, wie im folgenden Beispiel gezeigt:

class Person
{
    public string Name { get; set; }
}

class Program
{
    // Method changes the reference of the person variable to a new Person object
    static void ChangeName(ref Person person)
    {
        person = new Person { Name = "Alice" };
    }

    static void Main()
    {
        Person person = new Person { Name = "Bob" };
        ChangeName(ref person);
        Console.WriteLine(person.Name);  // Output: Alice
    }
}

In diesem Beispiel ändert die ChangeName Methode die Referenz der person Variable auf ein neues Person Objekt. Infolgedessen verweist die ursprüngliche person Variable nun auf ein anderes Objekt, und sein Name ist "Alice".

Methodenüberladung mit Referenztyp-Parametern

Sie können mehrere Methoden mit demselben Namen, aber unterschiedlichen Parametern haben. Dies wird als Methodenüberladung bezeichnet. Bei der Verwendung des ref Schlüsselworts wird die Methodenüberladung leistungsfähiger.

class Calculator
{
    // Method adds two integers and modifies the first using ref
    public static void Add(ref int x, int y)
    {
        x += y;
    }

    // Method adds two doubles and modifies the first using ref
    public static void Add(ref double x, double y)
    {
        x += y;
    }
}

class Program
{
    static void Main()
    {
        int intValue = 5;
        double doubleValue = 7.5;

        // Call overloaded Add methods with ref parameters
        Calculator.Add(ref intValue, 3);
        Calculator.Add(ref doubleValue, 2.5);

        Console.WriteLine(intValue);      // Output: 8
        Console.WriteLine(doubleValue);   // Output: 10.0
    }
}

Im obigen Beispiel überladen wir die Add Methode, um sowohl mit int als auch mit double Typen zu arbeiten. Das ref Schlüsselwort ermöglicht es den Methoden, die Originalvariablen direkt zu ändern.

Verwendung des Schlüsselworts out

Ein weiteres verwandtes Schlüsselwort ist out. Es ist ähnlich wie ref, hat aber einen leicht anderen Zweck. Während ref erwartet, dass die Variable initialisiert wird, bevor sie übergeben wird, wird das out Schlüsselwort verwendet, wenn Sie möchten, dass eine Methode einen Wert einem Parameter zuweist, der nicht unbedingt einen Anfangswert hat:

class Program
{
    // Method computes the quotient and uses the out keyword to return it
    static void Divide(int dividend, int divisor, out int quotient)
    {
        quotient = dividend / divisor;
    }

    static void Main()
    {
        int result;
        Divide(10, 2, out result);
        Console.WriteLine(result);  // Output: 5
    }
}

In diesem Beispiel berechnet die Divide Methode den Quotienten und weist ihn der quotient Variable mit Hilfe des out Schlüsselworts zu. Es sei darauf hingewiesen, dass Sie die result nicht initialisieren müssen, bevor Sie sie an die Methode übergeben.

Unterschied zwischen ref und out Schlüsselwort

Das out Schlüsselwort ist dem ref Schlüsselwort ähnlich, aber signifikant anders. Ein out Parameter benötigt keinen Anfangswert, während ein ref Parameter einen Anfangswert haben muss, bevor der Methodenaufruf erfolgt.

Potenzielle Fallstricke

Obwohl die ref und out Schlüsselwörter mächtige Werkzeuge sein können, sollten sie mit Bedacht verwendet werden. Falsche Verwendung dieser Schlüsselwörter kann zu verwirrendem Code und unerwartetem Verhalten führen. Zum Beispiel können Sie keine Nicht-Ref-Variable in einem ref oder out Parameter verwenden, ohne sie zuerst zu initialisieren, da dies zu einem Kompilierungsfehler führen würde.

Erweiterte Verwendung des Schlüsselworts ref

Arbeiten mit Referenztypen und Werttypen

Das Verständnis des Unterschieds zwischen Referenz- und Werttypen ist entscheidend, wenn man mit dem ref Schlüsselwort arbeitet.

  • Referenztyp: Die Variable bezieht sich auf den Speicherort, an dem die Daten gespeichert sind, z. B. Objekte, Arrays usw.
  • Werttyp: Die Variable enthält direkt die Daten, z. B. ganze Zahlen, Gleitkommazahlen usw.

Die Verwendung von ref mit Werttypen erlaubt es, dass Änderungen außerhalb der Methode wiedergespiegelt werden, während Referenztypen-Variablen von Natur aus so verhalten.

Erweiterungsmethode mit ref-Schlüsselwort

Sie können das ref Schlüsselwort auch mit Erweiterungsmethoden verwenden. Ein Beispiel:

public static class StringExtensions
{
    // Extension method that appends a value to the input string
    public static void AppendValue(ref this string input, string value)
    {
        input += value;
    }
}

Compiler-Fehler und das ref-Schlüsselwort

Wenn Sie vergessen, das ref Schlüsselwort entweder in der Methodensignatur oder im Methodenaufruf einzuschließen, führt dies zu einem Compilerfehler zur Kompilierzeit.

Async Methods and ref parameters

Beachten Sie, dass Sie keine ref Parameter mit Iterator-Methoden oder async Methoden verwenden können, da diese die Übergabe des Parameters nach Wert erfordern.

Einführung in Iron Suite

Zusätzlich zum Verstehen wichtiger Konzepte wie des ref Schlüsselworts in C# gibt es eine Reihe von mächtigen Werkzeugen, die das Leben eines Entwicklers erheblich erleichtern können. Die Iron Suite ist eine Sammlung robuster Werkzeuge und Bibliotheken, zu denen IronPDF, IronXL, IronOCR und IronBarcode gehören. Erforschen wir diese Tools und sehen, wie sie Ihre Programmiererfahrung verbessern können, ohne dass es ein Argument gibt.

IronPDF PDF-Verarbeitung leicht gemacht

Erfahren Sie mehr über IronPDF als wesentlicher Bestandteil der Iron Suite. Es ist eine Bibliothek, die es Entwicklern ermöglicht, PDF-Dateien innerhalb von C# zu erstellen, zu lesen und zu bearbeiten. Wenn Sie HTML in PDF umwandeln möchten, bietet IronPDF die nötigen Werkzeuge. Werfen Sie einen Blick auf das Tutorial zur Umwandlung von HTML in PDF, um mehr über diese Funktion zu erfahren.

IronXL Excel Manipulation an Ihren Fingerspitzen

Das Arbeiten mit Excel-Dateien in C# kann eine Herausforderung sein, aber IronXL-Funktionen erleichtern diese Aufgabe. Es ermöglicht Ihnen, Excel-Dateien zu lesen, zu schreiben, zu bearbeiten und zu manipulieren, ohne dass Excel installiert ist. Von der Datenimportierung bis zur Erstellung neuer Tabellenkalkulationen macht IronXL die Handhabung von Excel in C# einfach.

IronOCR Optical Character Recognition for C#

Optische Zeichenerkennung (OCR) kann komplex sein, aber entdecken Sie IronOCR zur Rationalisierung des Prozesses. Mit dieser Bibliothek können Sie Text aus Bildern lesen und in maschinenlesbaren Text umwandeln. Ob Sie Text aus einem gescannten Dokument extrahieren oder Zeichen aus einem Bild erkennen möchten, IronOCR bietet die nötige Funktionalität.

IronBarcode Barcode Erzeugung und Lesen

Barcodes werden in verschiedenen Branchen häufig verwendet, und ihre Handhabung in Ihren Anwendungen ist nun mit der IronBarcode-Bibliothek leichter zugänglich. Diese Bibliothek ermöglicht Barcodes in C# zu erstellen, zu lesen und zu verarbeiten. IronBarcode unterstützt eine Vielzahl von QR- und Barcode-Formaten.

Wie Iron Suite mit dem Schlüsselwort ref zusammenhängt

Sie fragen sich vielleicht, wie sich diese Werkzeuge auf das ref Schlüsselwort beziehen, das wir besprochen haben. Beim Arbeiten an komplexen Projekten, die PDF, Excel, OCR oder Barcodes einbeziehen, ist es entscheidend, das ref Schlüsselwort und andere C#-Prinzipien effektiv zu nutzen, um Ihren Code effizient zu verwalten.

Wenn Sie zum Beispiel große Excel-Dateien mit IronXL manipulieren, kann das Übergeben von Objekten als Referenz mit dem ref Schlüsselwort Ihren Code effizienter und wartbarer machen. Ähnlich kann das Arbeiten mit PDF-Dokumenten unter Verwendung von IronPDF Methoden beinhalten, bei denen das ref Schlüsselwort eine Rolle spielen kann.

Das Verständnis der grundlegenden Sprachfunktionen wie das ref Schlüsselwort und der Zugriff auf Werkzeuge wie die Iron Suite rüstet Sie mit einer leistungsstarken Kombination aus, um effiziente, robuste und vielseitige Anwendungen zu bauen. Die Iron Suite wurde entwickelt, um nahtlos mit Ihrem bestehenden C#-Wissen zu arbeiten, und zusammen können sie Ihnen helfen, professionellere und anspruchsvollere Lösungen zu erstellen.

Abschluss

Die C#-Sprache bietet mit Funktionen wie dem ref Schlüsselwort leistungsstarke Fähigkeiten für Entwickler. Kombiniert mit der Iron Suite, einschließlich IronPDF, IronXL, IronOCR und IronBarcode, werden die Möglichkeiten noch umfangreicher.

Jedes Produkt in der Iron Suite bietet eine kostenlose Testversion, die Ihnen erlaubt, die umfangreichen Funktionen ohne sofortige Investition zu erkunden und zu nutzen. Sollten Sie sich für eine vollständige Lizenz entscheiden, beginnen die Preise bei $999 für einzelne Komponenten.

Wenn Sie feststellen, dass die gesamte Iron Suite Ihren Bedürfnissen entspricht, wartet ein hervorragendes Angebot auf Sie. Sie können die komplette Suite zum Preis von nur zwei einzelnen Komponenten 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.

Your trial license will be sent to your email address

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

OR
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 Iron Suite
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.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach 'IronPDF'
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows-Installer hier herunter.

  1. Laden Sie IronPDF herunter und entpacken Sie es in ein Verzeichnis wie ~/Libs innerhalb Ihres Lösungsverzeichnisses
  2. Im Visual Studio-Projektmappen-Explorer klicken Sie mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronPDF.dll"

Lizenzen ab 749 $