0Pricing
C# Academy · Lektion

Null-Koaleszenzoperatoren

Verwenden Sie ?? und ??= für Ersatzwerte.

Null-Koaleszenzoperatoren ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Der Operator ??

Der Nullkoaleszenzoperator ?? gibt seinen linken Operanden zurück, wenn dieser nicht null ist, andernfalls den rechten Operanden. Er ist eine kompakte Möglichkeit, einen Ersatzwert festzulegen.

using System;

class Program {
    static void Main() {
        int? maybe = null;
        int value = maybe ?? -1;
        Console.WriteLine(value);
    }
}

?? wählt den ersten Wert, der nicht null ist

Wenn die linke Seite einen Wert enthält, wird dieser verwendet und die rechte Seite ignoriert.

using System;

class Program {
    static void Main() {
        int? a = 7;
        Console.WriteLine(a ?? 0);
    }
}

?? mit Referenztypen

?? funktioniert auch mit Referenztypen wie string und liefert bei null einen Standardtext.

using System;

class Program {
    static void Main() {
        string name = null;
        Console.WriteLine(name ?? "Guest");
    }
}

?? verketten

Sie können mehrere Ersatzwerte verketten; der erste Wert, der nicht null ist, wird verwendet.

using System;

class Program {
    static void Main() {
        string a = null, c = "third";
        string b = null;
        Console.WriteLine(a ?? b ?? c ?? "last");
    }
}

?? gibt den zugrunde liegenden Typ zurück

Wenn links int? und rechts int steht, ist das Ergebnis ein einfacher int, da null nicht mehr auftreten kann.

using System;

class Program {
    static void Main() {
        int? maybe = null;
        int sure = maybe ?? 0;
        Console.WriteLine(sure + 5);
    }
}

Der ??=-Operator

Die Null-Koaleszenzzuweisung ??= weist die rechte Seite nur dann zu, wenn links aktuell null steht.

using System;

class Program {
    static void Main() {
        int? count = null;
        count ??= 10;
        Console.WriteLine(count);
    }
}

??= lässt vorhandene Werte unverändert

Wenn die Variable bereits einen Wert enthält, tut ??= nichts.

using System;

class Program {
    static void Main() {
        string config = "custom";
        config ??= "default";
        Console.WriteLine(config);
    }
}

Lazy-Initialisierung mit ??=

??= eignet sich hervorragend, um einen Wert beim ersten Mal festzulegen und anschließend beizubehalten.

using System;

class Program {
    static string cache = null;
    static string GetData() {
        cache ??= "loaded";
        return cache;
    }
    static void Main() {
        Console.WriteLine(GetData());
        Console.WriteLine(GetData());
    }
}

?? im Vergleich zu GetValueOrDefault

Beide liefern Ersatzwerte, aber ?? ist flexibler: Es funktioniert mit Referenztypen und der Ersatzwert kann ein beliebiger Ausdruck sein.

using System;

class Program {
    static void Main() {
        int? n = null;
        Console.WriteLine(n ?? 5);
        Console.WriteLine(n.GetValueOrDefault(5));
    }
}

?? in Methodenargumenten

Verwenden Sie ?? direkt im Ausdruck, um genau dort einen Standardwert bereitzustellen, wo ein Wert benötigt wird.

using System;

class Program {
    static void Greet(string name) {
        Console.WriteLine("Hello, " + name);
    }
    static void Main() {
        string input = null;
        Greet(input ?? "friend");
    }
}

Kurzschlussverhalten

Die rechte Seite von ?? wird nur ausgewertet, wenn die linke Seite null ist, ähnlich wie bei einer Kurzschlussauswertung.

using System;

class Program {
    static int Compute() {
        Console.WriteLine("Computed");
        return 42;
    }
    static void Main() {
        int? known = 1;
        int result = known ?? Compute();
        Console.WriteLine(result);
    }
}

Kurzer Test

Testen Sie Ihr Verständnis der Null-Koaleszenzoperatoren.

Zusammenfassung

Der Operator ?? gibt den linken Wert zurück, wenn er nicht null ist, andernfalls den rechten. Außerdem kann er verkettet werden. Der Ergebnistyp verliert seine Nullable-Eigenschaft, wenn ein nicht-nullbarer Ersatzwert bereitgestellt wird.

??= weist nur dann einen Wert zu, wenn das Ziel null ist, und eignet sich daher ideal für Standardwerte und die Lazy-Initialisierung. Beide Operatoren werten die rechte Seite nur bei Bedarf aus.

Häufig gestellte Fragen

Ist die Lektion „Null-Koaleszenzoperatoren“ kostenlos?

Ja — der vollständige Text von „Null-Koaleszenzoperatoren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Null-Koaleszenzoperatoren“?

Verwenden Sie ?? und ??= für Ersatzwerte. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Null-Koaleszenzoperatoren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Nullable-Wertetypen kennenlernen
  2. HasValue- und Value-Eigenschaften
  3. Null-Koaleszenzoperatoren
  4. Nullable-Werte in Berechnungen
← Zurück zu C# Academy