Muster zur Nullprüfung
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy. Lektion 33 von 66.
Die Prüfung auf Null ist ein wesentlicher Bestandteil beim Schreiben von robustem C#-Code. Es gibt mehrere Muster, die du verwenden kannst, um sicher auf Nullwerte zu prüfen.
Sehen wir uns einige gängige Muster zur Überprüfung auf null an:
Zuerst die grundlegende Prüfung auf null:
string name = null;
if (name == null)
{
Console.WriteLine("Name is null");
}
Ein weiteres häufiges Muster ist der Null-bedingte Operator (?.), der sicher auf Member potenziell nuller Objekte zugreift:
string name = null;
int? length = name?.Length; // length wird null sein
Der Null-Koaleszenzoperator (??) stellt einen Standardwert bereit, wenn ein Ausdruck null ist:
string name = null;
string displayName = name ?? "Unknown"; // displayName wird "Unknown" sein
Du kannst diese Muster auch für komplexere Szenarien miteinander verketten:
string name = null;
int length = (name ?? "").Length; // length wird 0 sein
Die Methode string.IsNullOrWhiteSpace() ist eine praktische Möglichkeit, zu prüfen, ob eine Zeichenfolge null oder leer ist oder nur Leerzeichen enthält – alles in einem Aufruf:
string name = null;
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("Name is null, empty, or whitespace");
}
Dies ist besonders nützlich, wenn du null, leere Zeichenfolgen und Zeichenfolgen, die nur aus Leerzeichen bestehen, auf dieselbe Weise behandeln musst. Zum Beispiel:
string name1 = null;
string name2 = "";
string name3 = " ";
// Alle drei werden die Nachricht ausgeben
if (string.IsNullOrWhiteSpace(name1)) Console.WriteLine("name1 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name2)) Console.WriteLine("name2 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name3)) Console.WriteLine("name3 is null/empty/whitespace");
Beachte, dass sich string.IsNullOrWhiteSpace() von einer einfachen Nullprüfung unterscheidet. Sie erfasst auch leere Zeichenfolgen und Zeichenfolgen, die nur Leerzeichen, Tabulatoren oder andere Leerraumzeichen enthalten.
Aufgabe
EinfachErstelle eine Methode namens processUserName, die einen String-Parameter userName entgegennimmt. Die Methode sollte:
- Wenn
userNamenull ist, "No user provided" zurückgeben - Wenn
userNameleer ist oder nur aus Leerzeichen besteht, "Invalid username" zurückgeben - Andernfalls "Welcome, [userName]!" zurückgeben, wobei [userName] der tatsächliche Benutzername ist
Denke daran, geeignete Muster zur Nullprüfung zu verwenden.
Probier es selbst
using System;
class ProcessUserName
{
public static string processUserName(string userName)
{
// Schreibe deinen Code hier
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen 2D-Arrays2D-Arrays deklarieren und initialisierenAuf Elemente von 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysGezackte ArraysHäufige MatrixoperationenZusammenfassung – Mehrdimensionale Arrays4Techniken zur Ablaufsteuerung
Frühe RückgabenWächterklauselnSprunganweisungen (goto)Break und ContinueVerschachtelte Bedingungen abflachen7Logische Operatoren – Fortgeschritten
KurzschlussauswertungBedingte logische OperatorenOperatorrangfolgeRückblick – Erweiterte Operatoren2Fortgeschrittene Entscheidungslogik
Mehrere BedingungenKomplexe boolesche LogikVergleich: If vs. SwitchVerschachtelte Switch-AnweisungenRückblick – Fortgeschrittene Entscheidungen5Fehlerbehandlung mit Exceptions
Grundlagen von Try-CatchException-TypenMehrere Catch-BlöckeArbeiten mit DateienFinally-BlockUsing im Vergleich zu Try-FinallyBenutzerdefinierte ExceptionsZusammenfassung – Fehlerbehandlung3Schleifenverbesserungen
SchleifenleistungKomplexe IterationJeder SchleifentypSchleifen refaktorierenRückblick – Optimierte Schleifen6Behandlung von Nullwerten
Grundlagen von NullreferenzenNullable WerttypenMuster zur NullprüfungDefensive ProgrammierungZusammenfassung – NullsicherheitÜbe selbstständig: Online-C#-Compiler