Was bedeuten zwei Fragezeichen hintereinander in C#?
Hallo! Ich habe gerade angefangen, C# zu lernen und bin auf eine seltsame Syntax gestoßen. In fremdem Code habe ich folgende Konstruktion gesehen:\n\n```csharp\nstring name = userName ?? "Guest";\n```\n\nWas machen diese zwei Fragezeichen `??` hier? Ich verstehe, dass `userName` eine Variable ist, aber warum setzt man zwei Fragezeichen und dann einen String? Ist das eine Art Überprüfung? Ich habe versucht zu googeln, aber meistens finde ich Erklärungen zum ternary operator `? :`, und das sieht anders aus.\n\nAußerdem habe ich bemerkt, dass manchmal `??=` geschrieben wird – hängt das auch damit zusammen? Zum Beispiel in diesem Code:\n\n```csharp\nlist ??= new List();\n```\n\nKönnt ihr mir einfach erklären, wie das funktioniert und wofür es gut ist? Am liebsten mit Beispielen, weil ich ein visueller Typ bin. Danke im Voraus!