Menu
Coddy logo textTech

Null Checking Patterns

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, in einem einzigen Aufruf zu prüfen, ob eine Zeichenfolge null oder leer ist oder nur whitespace-Zeichen enthält:

string name = null;

if (string.IsNullOrWhiteSpace(name))
{
    Console.WriteLine("Name is null, empty, or whitespace");
}

Dies ist besonders nützlich, wenn du null, empty strings und strings, die nur aus whitespace 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 null-Prüfung unterscheidet. Sie erfasst auch leere Zeichenfolgen sowie Zeichenfolgen, die nur Leerzeichen, Tabulatoren oder andere whitespace-Zeichen enthalten.

challenge icon

Aufgabe

Einfach

Erstelle eine Methode namens processUserName, die einen string-Parameter userName entgegennimmt. Die Methode sollte:

  1. Wenn userName null ist, "No user provided" zurückgeben
  2. Wenn userName leer ist oder nur aus whitespace besteht, "Invalid username" zurückgeben
  3. Andernfalls "Welcome, [userName]!" zurückgeben, wobei [userName] der tatsächliche username ist

Denke daran, geeignete Muster zur null-Prüfung zu verwenden.

Probier es selbst

using System;

class ProcessUserName
{
    public static string processUserName(string userName)
    {
        // Schreibe deinen Code hier
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-C#-Compiler