Zum Fußzeileninhalt springen
.NET HILFE

C# Null-Koaleszenz (Wie es für Entwickler funktioniert)

Der nullzusammenführende Operator ?? bewertet das rechte Operanden und gibt dessen Ergebnis zurück, wenn das linke Operanden eine null Referenz ist; andernfalls gibt er den Wert seines linken Operanden zurück. Wenn der linke Operanden zu einem nicht-nullable Werttyp evaluiert, wertet der nullzusammenführende Operator (??) sein rechtes Operanden nicht aus. Der Zuweisungsoperator ??= ist eine nullzusammenführende Zuweisung, die den Wert ihres rechten Operandens nur dann ihrem linken Operanden zuweist, wenn der linke Operanden zu einem nullable Typ-Wert evaluiert. Wenn der Operanden auf der linken Seite zu einem nicht-null Wert evaluiert, wertet der nullzusammenführende Zuweisungsoperator (??=) sein rechtes Operanden nicht aus. Der Null-Zusammenführungsoperator ähnelt dem ternären Operator.

In C# ist der Null-Zusammenführungsoperator (??) ein binärer Operator. Ein Operator, der auf zwei Operanden wirkt, wird als binärer Operator bezeichnet. Beim Verwenden des nullzusammenführenden Operators sind zwei Operanden erforderlich, und der Operator wertet jeden Operanden aus, um das Ergebnis zu bestimmen. Nun werden wir die Verwendung von nullzusammenführenden und nullkonditionalen Operatoren in C# unten sehen.

Wie man C# Null Coalescing Value Types verwendet

  1. Erstellen Sie ein neues C# Projekt.
  2. Stellen Sie sicher, dass die entsprechende Version installiert ist.
  3. Verwenden Sie den nullzusammenführenden Operator ??.
  4. Überprüfen Sie die Werte- oder Objekt-Verweistypen basierend auf der Anforderung.
  5. Führen Sie den Code aus.

Null-Koaleszenz in C#;

Nullwerte in C# werden standardmäßig durch den nullzusammenführenden Operator (??) behandelt, die Idee der Zusammenführung wird verwendet, um solche Werte zu verwalten, wenn man mit nullable Typen oder Ausdrücken umgeht, die möglicherweise null ergeben.

Syntax

Die folgende ist die Syntax für den nullzusammenführenden Operator:

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
$vbLabelText   $csharpLabel
  • ausdruck1: Ein null-Wert könnte durch diesen Ausdruck erzeugt werden.
  • ausdruck2: Wenn ausdruck1 null ist, ist dies der Standardwert oder der ersatzweise zu verwendende Ausdruck.
  • ergebnis: Die Variable, die das Ergebnis der Zusammenführungsoperation hält.

Der nullzusammenführende Operator bietet eine verkürzte Methode, um einen Standardwert zuzuweisen, wenn man mit nullable Typen arbeitet, was ihr Hauptziel ist, Code zu vereinfachen und effektiv mit null Werten umzugehen.

Vorteile

  • Kürze: Behandelt null Überprüfungen, ohne komplexe Bedingungssätze oder ternäre Operatoren zu erfordern.
  • Code-Lesbarkeit: Verbesserte Lesbarkeit durch explizite Angabe, dass ein Standardwert bereitgestellt wird, wenn null zurückgegeben wird.

Es ist wichtig sicherzustellen, dass die Ausdruckstypen, die verglichen werden, übereinstimmen oder kompatibel sind, bevor man den nullzusammenführenden Operator verwendet.

Obwohl nützlich, könnte das übermäßige Verwenden des Operators den Code schwerer verständlich machen. Verwenden Sie ihn sparsam, wenn er die Klarheit des Codes verbessert.

Beim Arbeiten mit nullable Typen oder Szenarien, die Standardwerte erfordern, ist der nullzusammenführende Operator (??) in C# ein effektives Werkzeug zum Verwalten von null Werten und kann helfen, kürzeren und verständlicheren Code zu schreiben.

Der nullzusammenführende Operator ?? besitzt die folgenden typbezogenen Eigenschaften:

Ergebnistyp-Inferenz

Der Ergebnistyp des nullzusammenführenden Operators ist derselbe wie diese Operanden, wenn die Ausdrücke 1 und 2 denselben Typ haben, wie im folgenden Code gezeigt.

int? Value = null;
int result = Value ?? 10;
int? Value = null;
int result = Value ?? 10;
Dim Value? As Integer = Nothing
Dim result As Integer = If(Value, 10)
$vbLabelText   $csharpLabel

Typ-Kompatibilität

Der Ergebnistyp ist der Typ, zu dem beide Ausdrücke implizit konvertiert werden können, wenn die Ausdrücke 1 und 2 unterschiedliche Typen haben, aber einer implizit in den anderen konvertiert werden kann.

double? value = null;
int result = (int)(value ?? 5.5);
double? value = null;
int result = (int)(value ?? 5.5);
Imports System

Dim value? As Double = Nothing
Dim result As Integer = CInt(Math.Truncate(If(value, 5.5)))
$vbLabelText   $csharpLabel

Typ Werbung

Wenn die Typen der Ausdrücke 1 und 2 nicht implizit konvertiert werden können, wird der Ergebnistyp gemäß den Typanhebungsregeln von C# ausgewählt.

int? value = null;
long result = value ?? 100L;
int? value = null;
long result = value ?? 100L;
Dim value? As Integer = Nothing
Dim result As Long = If(value, 100L)
$vbLabelText   $csharpLabel

Folglich bestimmen die Typen der beteiligten Operanden und die C#-Typkonvertierungsregeln den Typ der Variablen oder des Ausdrucks, der das Ergebnis des nullzusammenführenden Operators (??) hält. Um das korrekte Handling von Typen und Werten beim Einsatz des nullzusammenführenden Operators zu gewährleisten, ist es wichtig, die Kompatibilität und mögliche Typkonvertierungen zu berücksichtigen.

Koaleszieren in IronPDF

IronPDF installieren

Um die IronPDF-Bibliothek zu installieren, geben Sie den folgenden Code in den Paket-Manager ein:

Install-Package IronPdf

C# Nullzusammenführung (Wie es für Entwickler funktioniert): Abbildung 1 - IronPDF installieren

Alternativ können Sie den NuGet-Paket-Manager verwenden, um nach dem Paket "IronPDF" zu suchen. Sie können das notwendige Paket aus dieser Liste aller NuGet-Pakete, die mit IronPDF verbunden sind, auswählen und herunterladen.

C# Nullzusammenführung (Wie es für Entwickler funktioniert): Abbildung 2 - NuGet-Paket-Manager

PDF mit Null Coalescing erstellen

Eine C#-Bibliothek namens IronPDF wird verwendet, um PDF-Dokumente zu erstellen und mit ihnen zu arbeiten. Die Bibliothek bietet Funktionen für die Arbeit mit PDFs, wie z.B. Formatierung, Textverarbeitung und Bildverwaltung. "Nullzusammenführung" ist keine Methode oder Funktion, die exklusiv für IronPDF ist, vielmehr ist es ein Sprachmerkmal und kein bibliotheksspezifischer Vorgang.

Wenn Sie jedoch mit IronPDF oder einer anderen Bibliothek in Ihrem C#-Code arbeiten, können Sie die nullzusammenführenden Operatoren (??) verwenden, die die C#-Sprache bietet.

Zum Beispiel, während Sie mit IronPDF-Objekten arbeiten, die nullable Wertetypen oder Eigenschaften sein können, die null zurückgeben können, können Sie den nullzusammenführenden Operator verwenden, um null Situationen zu behandeln oder Standardwerte bereitzustellen.

Das folgende Beispiel zeigt, wie der nullzusammenführende Operator mit IronPDF verwendet werden kann:

using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
Imports IronPdf
Imports IronPdf.Pages

Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim x? As Integer = Nothing

			' Use the null-coalescing operator to provide a default value if x is null
			Dim outputstr = $"square of <b>{x}</b> is <b>{Math.Sqrt(If(x, 30))}</b>"

			' Render the HTML string as a PDF using IronPDF
			Dim pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr)

			' Save the generated PDF to the file system
			pdfcreate.SaveAs("demo.pdf")

			' Wait for a key press to prevent the console from closing immediately
			Console.ReadKey()
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Denken Sie daran, dass IronPDF (oder eine andere Bibliothek) keine spezielle Funktion oder Methode für das Management von Nullwerten für bedingte Operatoren bereitstellt; sondern die Verwendung des nullzusammenführenden Operators basiert auf allgemeinen C#-Spracheigenschaften und Konzepten zur Handhabung eines null-bedingten Operators. Um mehr über die Funktionen und Fähigkeiten von IronPDF zu erfahren, besuchen Sie die IronPDF-Demos.

Ausgabe:

C# Nullzusammenführung (Wie es für Entwickler funktioniert): Abbildung 3 - Vorhergehendes Beispiel Ausgegeben

Abschluss

Zusammenfassend lässt sich sagen, dass der nullzusammenführende Operator (??) von C# ein nützliches Merkmal ist, das die Handhabung von null Werten in Ausdrücken und Zuweisungen erleichtert und effizienter macht. Dieser Operator vereinfacht den Code, indem er Entwicklern eine klare Möglichkeit bietet, Szenarien zu handhaben, in denen ein Wert null sein könnte. Dies ermöglicht es Entwicklern, Standardwerte anzugeben oder alternative Logik mit Leichtigkeit auszuführen. Seine Anpassungsfähigkeit macht den Code schlanker und effektiver, vereinfacht null Tests und verbessert die Lesbarkeit.

IronPDF bietet eine unbefristete Lizenz, Upgrade-Optionen, ein Jahr Software-Wartung und eine dreißigtägige Geld-zurück-Garantie, alles im $799 Lite-Paket enthalten. Benutzer haben dreißig Tage Zeit, um das Produkt in realen Anwendungsszenarien während des mit Wasserzeichen versehenen Testzeitraums zu bewerten. Klicken Sie auf die bereitgestellte IronPDF-Lizenzierung, um mehr über die Kosten, Lizenzierung und Testversion von IronPDF zu erfahren. Um mehr über die Produkte von Iron Software zu erfahren, besuchen Sie die Iron Software-Website.

Häufig gestellte Fragen

Wie verbessert der Null-Koaleszenz-Operator die Lesbarkeit von Code in C#?

Der Null-Koaleszenz-Operator `??` in C# verbessert die Lesbarkeit von Code, indem er null-Prüfungen vereinfacht und eine prägnante Möglichkeit bietet, Standardwerte zuzuweisen, wenn ein Nullable-Typ auftritt.

Was ist der Zweck des Null-Koaleszenz-Zuweisungsoperators in C#?

Der Null-Koaleszenz-Zuweisungsoperator `??=` weist den Wert seines rechten Operanden nur dann seinem linken Operanden zu, wenn der linke Operand null ist, was einen optimierten Code beim Arbeiten mit Nullable-Typen ermöglicht.

Können Sie ein Beispiel für die Verwendung des Null-Koaleszenz-Operators in einer C# PDF-Anwendung geben?

In einer C# PDF-Anwendung mit IronPDF könnten Sie den Null-Koaleszenz-Operator verwenden, um einen Standarddateinamen zuzuweisen, falls der Benutzer keinen angibt: string pdfName = userInputFileName ?? "default.pdf";.

Was sind einige häufige Fallstricke bei der Verwendung des Null-Koaleszenz-Operators?

Ein häufiger Fallstrick besteht darin, die Typkompatibilität zwischen den Operanden nicht sicherzustellen, was zu Typumwandlungsfehlern führen kann. Es ist wichtig, sicherzustellen, dass beide Operanden kompatible Typen sind, wenn der Null-Koaleszenz-Operator verwendet wird.

Wie steht der Null-Koaleszenz-Operator in Bezug zur Typkompatibilität in C#?

Der Null-Koaleszenz-Operator erfordert, dass beide Operanden kompatible Typen sind. Wenn dies nicht der Fall ist, wendet C# Typförderungsregeln an, um den Ergebnistyp zu bestimmen, was zu unerwartetem Verhalten führen kann, wenn nicht sorgfältig darauf geachtet wird.

Warum ist der Null-Koaleszenz-Operator vorteilhaft für Entwickler, die mit Nullable-Typen arbeiten?

Der Null-Koaleszenz-Operator ist vorteilhaft, weil er es Entwicklern ermöglicht, Nullable-Typen effizient zu handhaben, indem er Standardwerte bereitstellt und den Bedarf an ausführlichen bedingten Logiken reduziert.

Wie können Entwickler den Null-Koaleszenz-Operator verwenden, um null-Werte in C# Codebibliotheken zu verwalten?

Entwickler können den Null-Koaleszenz-Operator in C# Codebibliotheken verwenden, um Standardwerte zuzuweisen, wenn ein gegebener Wert null sein könnte, um so sicherzustellen, dass die Anwendung reibungslos ohne Nullverweis-Ausnahmen weiterläuft.

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