Menu
Coddy logo textTech

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.

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 Leerzeichen besteht, "Invalid username" zurückgeben
  3. 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
    }
}
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