0Pricing
C# Academy · Lektion

HasValue- und Value-Eigenschaften

Prüfen und greifen Sie sicher auf Nullable-Werte zu.

HasValue- und Value-Eigenschaften ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Zwei wichtige Eigenschaften

Jedes Nullable stellt HasValue (einen booleschen Wert) und Value (den zugrunde liegenden Wert) bereit. Damit können Sie den Wert sicher prüfen.

using System;

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

HasValue prüft das Vorhandensein

HasValue ist true, wenn ein echter Wert vorhanden ist, und false, wenn der Wert null ist.

using System;

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

Value sicher lesen

Prüfen Sie immer HasValue, bevor Sie Value lesen, da das Lesen von Value bei einem null-Wert eine Ausnahme auslöst.

using System;

class Program {
    static void Main() {
        int? n = 42;
        if (n.HasValue) {
            Console.WriteLine(n.Value * 2);
        }
    }
}

Das Lesen von Value bei null löst eine Ausnahme aus

Wenn Sie Value lesen, obwohl das Nullable null ist, löst C# eine InvalidOperationException aus. Die Prüfung schützt Sie davor.

using System;

class Program {
    static void Main() {
        int? n = null;
        try {
            Console.WriteLine(n.Value);
        } catch (InvalidOperationException) {
            Console.WriteLine("Caught: no value");
        }
    }
}

GetValueOrDefault

GetValueOrDefault() gibt den Wert zurück, wenn einer vorhanden ist, andernfalls den Standardwert des Typs (0 für int, false für bool).

using System;

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

GetValueOrDefault mit Ersatzwert

Übergeben Sie ein Argument, um einen eigenen Ersatzwert festzulegen: GetValueOrDefault(99) gibt bei null den Wert 99 zurück.

using System;

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

Muster: Prüfen, dann verwenden

Ein gängiges Muster kombiniert HasValue und Value in einer übersichtlichen Verzweigung.

using System;

class Program {
    static void Describe(int? score) {
        if (score.HasValue)
            Console.WriteLine("Score is " + score.Value);
        else
            Console.WriteLine("No score yet");
    }
    static void Main() {
        Describe(88);
        Describe(null);
    }
}

Implizite Rückkonvertierung

Sie können einen Nullable-Wert erst dann einem gewöhnlichen Typ zuweisen, wenn Sie bestätigt haben, dass er einen Wert enthält, und anschließend Value lesen.

using System;

class Program {
    static void Main() {
        int? maybe = 15;
        if (maybe.HasValue) {
            int real = maybe.Value;
            Console.WriteLine(real + 5);
        }
    }
}

Standardwert eines Nullable

Ein nicht ausdrücklich gesetztes Nullable hat standardmäßig den Wert null, daher ist HasValue false.

using System;

class Program {
    static void Main() {
        int? n = default;
        Console.WriteLine(n.HasValue);
    }
}

Verwendung in Aggregationen

Durchlaufen Sie Daten und überspringen Sie mit HasValue null-Werte, um sichere Summen zu berechnen.

using System;

class Program {
    static void Main() {
        int?[] readings = { 10, null, 5, null, 8 };
        int sum = 0;
        foreach (var r in readings)
            if (r.HasValue) sum += r.Value;
        Console.WriteLine(sum);
    }
}

GetValueOrDefault in Schleifen

GetValueOrDefault kann den Code vereinfachen, wenn null als null interpretiert werden soll.

using System;

class Program {
    static void Main() {
        int?[] readings = { 10, null, 5 };
        int sum = 0;
        foreach (var r in readings)
            sum += r.GetValueOrDefault();
        Console.WriteLine(sum);
    }
}

Kurztest

Testen Sie Ihr Wissen über Nullable-Eigenschaften.

Zusammenfassung

HasValue zeigt an, ob ein Nullable einen Wert enthält, und Value ruft ihn ab. Das Lesen von Value bei null löst jedoch eine Ausnahme aus.

GetValueOrDefault() gibt sicher den Wert oder einen Ersatzwert zurück – den Standardwert des Typs oder einen von Ihnen angegebenen Wert. Dadurch eignet sich die Methode besonders für Summen und sicheres Lesen.

Häufig gestellte Fragen

Ist die Lektion „HasValue- und Value-Eigenschaften“ kostenlos?

Ja — der vollständige Text von „HasValue- und Value-Eigenschaften“ 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 „HasValue- und Value-Eigenschaften“?

Prüfen und greifen Sie sicher auf Nullable-Werte zu. 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 2 von 4.

Wie lange dauert die Lektion „HasValue- und Value-Eigenschaften“?

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