C# Nullable Types: Sicherer Umgang mit Null-Werten
Was sind Nullable-Typen?
Werttypen (int, bool, double, …) können normalerweise nicht null annehmen. Nullable-Typen (seit C# 2.0) erweitern Werttypen um den Wert null.
Syntax
<Werttyp>? <Variablenname> = null;
// oder explizit:
Nullable<Int32> num = null;
Beispiele
int? num1 = null; // kann -2.147.483.648 bis 2.147.483.647 ODER null
int? num2 = 45;
double? num3 = new double?(); // null
double? num4 = 3.14157;
bool? flag = null; // true, false oder null
Eigenschaften von Nullable<T>
HasValue–true, wenn Wert vorhanden (nicht null)Value– Liefert den Wert (wirft Exception, wennHasValue == false)GetValueOrDefault()– Liefert Wert oder Standardwert des Typs (0, false, …)
Null-Coalescing-Operator ??
Kurzform für: Wenn links null, nimm rechts; sonst nimm links.
double? num1 = null;
double? num2 = 3.14157;
double d1 = num1 ?? 5.34; // 5.34 (num1 ist null)
double d2 = num2 ?? 5.34; // 3.14157 (num2 hat Wert)
Verwendung mit Referenztypen
?? funktioniert auch mit Referenztypen (Strings, Klassen, Arrays):
string name = null;
string displayName = name ?? "Gast"; // "Gast"
Null-bedingter Operator ?. (C# 6+)
Sicherer Memberzugriff auf potenziell null Objekte:
string text = null;
int? length = text?.Length; // null, keine NullReferenceException
Ketten: customer?.Address?.City?.Length.
C Sprache
- Java 8 Optional meistern: Praktischer Leitfaden für null-sicheren Code
- C# Attribute: Metadaten für Compiler & Runtime
- Ferro-Titanit® Cromoni – Hochfeste, nichtmagnetische Titanlegierung
- AgCu20 Legierung: Umfassende mechanische & thermische Eigenschaften bei 23 °C
- Legierung 15CDV6 (DIN 1.7734) – Hohe Festigkeit, Zähigkeit und leichte Schweißbarkeit
- DIN 1.7734 15CDV6 Legierung – Hohe Festigkeit, Zähigkeit und ausgezeichnete Schweißbarkeit
- 15CDV6 Legierung (DIN 1.7734) – Höchste Festigkeit, einfache Schweißbarkeit, überlegene Zähigkeit
- PtNi10 Legierung: Umfassende mechanische & thermische Eigenschaften
- PtIr10 Platin-Iridium-Legierung: Hochfestes Hochtemperatur-Material
- Corroplast Platte – Hochleistungs-Korrosionsbeständiger Stahl für Präzisionsbearbeitung