
Łączenie wartości null w języku C# (jak to działa dla programistów)
Operator łączący z wartością null ?? ocenia prawy operand i zwraca jego rezultat, jeśli lewy operand jest odwołaniem o wartości null; w przeciwnym razie zwraca wartość swojego lewostronnego operandu. Jeśli lewostronny operand ocenia się jako typ wartościowy niebędący null, operator null-coalescing (??) nie ocenia swojego prawostronnego operandu. Operator przypisania ??= to łączące przypisanie wartości null, które przypisuje wartość prawego operandu do lewego operandu tylko wtedy, gdy lewy operand jest typem dopuszczającym wartość null. Jeśli operand po lewej stronie ocenia się jako wartość niebędąca null, operator przypisania null-coalescing (??=) nie ocenia swojego prawostronnego operandu. Operator null-coalescing jest podobny do operatora trójargumentowego.
W C#, operator null-coalescing (??) jest operatorem binarnym. Operator, który działa na dwa operandy jest nazywany operatorem binarnym. Podczas używania operatora null-coalescing, wymagane są dwa operandy, a operator ocenia każdy operand w celu określenia wyniku. Teraz zobaczymy użycie operatorów null-coalescing i null-conditional w C# poniżej.
Jak używać typów wartościowych null-coalescing w C#
- Utwórz nowy projekt w języku C#.
- Upewnij się, że zainstalowana jest odpowiednia wersja.
- Użyj operatora null-coalescing ??.
- Sprawdź typy referencyjne wartości lub obiektu w zależności od wymogu.
- Uruchom kod.
Null Coalescing in C#
Wartości null w C# są obsługiwane przez domyślne, zapewnione przez operator null-coalescing (??), co jest ideą koalescencji używaną do zarządzania takimi wartościami podczas pracy z typami nullable lub wyrażeniami, które mogą zaowocować null.
Składnia
Poniżej znajduje się składnia dla operatora null-coalescing:
result = expression1 ?? expression2;result = If(expression1, expression2)- expression1: To wyrażenie może produkować wartość null.
- expression2: Jeśli expression1 jest null, to jest wartość domyślna lub wyrażenie zastępcze do użycia.
- result: Zmienna przechowująca wynik operacji koalescencji.
Operator null-coalescing oferuje skrócony sposób przypisania wartości domyślnej podczas pracy z typami nullable, co jest jego głównym celem upraszczania kodu i efektywnego zarządzania danymi null.
Zalety
- Zwięzłość: Obsługuje sprawdzenia null bez wymagania skomplikowanych instrukcji warunkowych lub operatorów trójargumentowych.
- Czytelność kodu: Poprawiona przez explicite przekazywanie, że zostanie dostarczona wartość domyślna, jeśli zostanie zwrócony null.
To kluczowe, aby upewnić się, że typy wyrażeń porównywanych są zgodne lub kompatybilne przed użyciem operatora null-coalescing.
Chociaż użyteczny, nadmierne użycie operatora może utrudnić zrozumienie kodu. Stosuj go oszczędnie, gdy poprawia jasność kodu.
Podczas pracy z typami nullable lub scenariuszami wymagającymi wartości domyślnych, operator null-coalescing (??) w C# jest skutecznym narzędziem do zarządzania wartościami null i może pomóc w pisaniu bardziej zwięzłego i zrozumiałego kodu.
Operator null-coalescing ?? posiada następujące cechy związane z typem:
Wnioskowanie typu wyniku
Typ wyniku operatora koalescencji wartości null jest taki sam jak typy tych operandów, jeśli wyrażenia 1 i 2 mają ten sam typ, jak pokazano w poniższym kodzie.
int? Value = null;
int result = Value ?? 10;Dim Value? As Integer = Nothing
Dim result As Integer = If(Value, 10)Zgodność typów
Typ wyniku to typ, na który oba wyrażenia mogą zostać niejawnie przekonwertowane, jeśli wyrażenia 1 i 2 mają różne typy, ale jedno z nich może zostać niejawnie przekonwertowane na drugie.
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)))Promocja typu
Jeśli typy wyrażeń 1 i 2 nie mogą zostać przekonwertowane w sposób domyślny, typ wyniku zostanie wybrany zgodnie z regułami promocji typów języka C#.
int? value = null;
long result = value ?? 100L;Dim value? As Integer = Nothing
Dim result As Long = If(value, 100L)W związku z tym typy operandów oraz reguły konwersji typów w języku C# determinują typ zmiennej lub wyrażenia, które przechowuje wynik działania operatora koalescencji wartości null (??). Aby zagwarantować prawidłową obsługę typów i wartości przy użyciu operatora scałania wartości null, należy koniecznie uwzględnić kompatybilność i prawdopodobne konwersje typów.
Łączenie w IronPDF
Zainstaluj IronPDF
Aby zainstalować bibliotekę IronPDF, wprowadź następujący kod do menedżera pakietów:

Alternatywnie można użyć menedżera pakietów NuGet, aby wyszukać pakiet "IronPDF". Możesz wybrać i pobrać potrzebny pakiet z tej listy wszystkich pakietów NuGet powiązanych z IronPDF.

Utwórz plik PDF z funkcją Null Coalescing
Biblioteka C# o nazwie IronPDF służy do tworzenia dokumentów PDF i pracy z nimi. Biblioteka oferuje funkcje do pracy z plikami PDF, takie jak formatowanie, przetwarzanie tekstu i zarządzanie obrazami. "Null-coalescing" nie jest metodą ani funkcją dostępną wyłącznie w IronPDF; jest to raczej funkcja języka niż operacja specyficzna dla biblioteki.
Jeśli jednak pracujesz z IronPDF lub jakąkolwiek inną biblioteką w kodzie C#, możesz skorzystać z operatorów scałania wartości null (??), które zapewnia język C#.
Aby obsłużyć sytuacje null lub podać wartości domyślne, na przykład podczas pracy z obiektami IronPDF, typami wartości nullable lub właściwościami, które mogą zwracać null, można użyć operatora null-coalescing.
Poniższy przykład pokazuje, jak operator scałania wartości null może być używany w IronPDF:
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
Module Module1
Sub Main(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 ModuleNależy pamiętać, że IronPDF (ani żadna inna biblioteka) nie udostępnia specjalnej funkcji ani metody do obsługi operatorów warunkowych z wartościami null; Użycie operatora koalescencji wartości null opiera się raczej na ogólnych cechach języka C# i koncepcjach dotyczących obsługi operatora warunkowego null. Aby dowiedzieć się więcej o funkcjach i możliwościach IronPDF, odwiedź stronę IronPDF Demos.
Wynik:

Wnioski
Podsumowując, operator koalescencji wartości null (??) w języku C# jest przydatną funkcją, która sprawia, że obsługa wartości null w wyrażeniach i przypisaniach jest łatwiejsza i bardziej wydajna. Ten operator upraszcza kod, dając programistom jasny sposób radzenia sobie w sytuacjach, w których wartość może być null. Umożliwia to programistom łatwe określanie wartości domyślnych lub realizowanie alternatywnej logiki. Jego elastyczność sprawia, że kod jest bardziej uproszczony i efektywny, co ułatwia testy null i poprawia czytelność.
IronPDF oferuje licencję wieczystą, opcje aktualizacji, rok utrzymania oprogramowania oraz trzydziestodniową gwarancję zwrotu pieniędzy, wszystko to zawarte w pakiecie $999 Lite. Użytkownicy mają trzydzieści dni na przetestowanie produktu w rzeczywistych warunkach podczas okresu próbnego z znakiem wodnym. Kliknij podany link "Licencjonowanie IronPDF", aby dowiedzieć się więcej o kosztach, licencjonowaniu i wersji próbnej IronPDF. Aby dowiedzieć się więcej o produktach Iron Software, odwiedź stronę internetową Iron Software.

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.
Powiązane artykuły


