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
- Nullable-Wertetypen kennenlernen
- HasValue- und Value-Eigenschaften
- Null-Koaleszenzoperatoren
- Nullable-Werte in Berechnungen