Menu
Coddy logo textTech

Null Checking Patterns

Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 33 von 66.

Die Null-Prüfung ist ein wesentlicher Bestandteil beim Schreiben von robustem C#-Code. Es gibt verschiedene Muster, die Sie verwenden können, um sicher auf Nullwerte zu prüfen.

Schauen wir uns einige gängige Muster zur Null-Prüfung an:

Zuerst die grundlegende if-null-Prüfung:

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 von potenziell null-wertigen Objekten zugreift:

string name = null;
int? length = name?.Length;  // length wird null sein

Der Null-Coalescing-Operator (??) stellt einen Standardwert bereit, wenn ein Ausdruck null ist:

string name = null;
string displayName = name ?? "Unknown";  // displayName wird "Unknown" sein

Sie können diese Muster auch für komplexere Szenarien verketten:

string name = null;
int length = (name ?? "").Length;  // length wird 0 sein

Die Methode string.IsNullOrWhiteSpace() ist eine bequeme Möglichkeit, um zu prüfen, ob ein String null oder leer ist oder nur aus Leerzeichen besteht – und das alles in einem einzigen Aufruf:

string name = null;

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

Dies ist besonders nützlich, wenn Sie null, leere Zeichenfolgen und Zeichenfolgen, die nur aus Leerzeichen bestehen, auf die gleiche Weise behandeln müssen. 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");

Beachten Sie, dass string.IsNullOrWhiteSpace() sich von einer einfachen Null-Prüfung unterscheidet – sie fängt auch leere Zeichenfolgen und Zeichenfolgen ab, die nur Leerzeichen, Tabulatoren oder andere Whitespace-Zeichen enthalten.

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode namens processUserName, die einen String-Parameter userName entgegennimmt. Die Methode sollte:

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

Denken Sie 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