Null Checking Patterns
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 33 von 66.
Die Null-Überprüfung ist ein wesentlicher Bestandteil des Schreibens robuster C#-Code. Es gibt mehrere Muster, die Sie verwenden können, um Null-Werte sicher zu überprüfen.
Lassen Sie uns einige gängige Muster zur Nullprüfung erkunden:
Zuerst die grundlegende if-Null-Prüfung:
string name = null;
if (name == null)
{
Console.WriteLine("Name is null");
}
Ein weiteres gängiges Muster ist der nullbedingte Operator (?.), der sicher auf Member potenziell nuller Objekte zugreift:
string name = null;
int? length = name?.Length; // length wird null sein
Der Null-Koaleszenz-Operator (??) stellt einen Standardwert bereit, wenn ein Ausdruck null ist:
string name = null;
string displayName = name ?? "Unknown"; // displayName will be "Unknown"
Sie können diese Muster auch für komplexere Szenarien verketten:
string name = null;
int length = (name ?? "").Length; // length will be 0
Die string.IsNullOrWhiteSpace()-Methode prüft, ob ein String null ist, leer oder nur Leerzeichen enthält. Sie ist eine bequeme Möglichkeit, String-Eingaben in einem einzigen Aufruf zu validieren:
string name = null;
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("No name provided"); // this will print
}
string blank = " ";
if (string.IsNullOrWhiteSpace(blank))
{
Console.WriteLine("Blank name provided"); // this will also print
}
Verwenden Sie string.IsNullOrWhiteSpace(), wenn Sie null, leere Strings und nur Leerzeichen enthaltende Strings als gleichwertig ungültige Eingaben behandeln möchten.
Aufgabe
EinfachErstellen Sie eine Methode namens processUserName, die einen String-Parameter userName annimmt. Die Methode sollte:
- Wenn
userNamenull ist, geben Sie "No user provided" zurück - Wenn
userNameleer oder nur Leerzeichen ist, geben Sie "Invalid username" zurück - Andernfalls geben Sie "Welcome, [userName]!" zurück, wobei [userName] der tatsächliche Benutzername ist
Vergessen Sie nicht, geeignete Null-Prüfungsmuster zu verwenden.
Spickzettel
Verwenden Sie == null für grundlegende Null-Überprüfungen:
if (name == null)
{
Console.WriteLine("Name is null");
}Verwenden Sie den nullbedingten Operator ?., um sicher auf Member zuzugreifen:
int? length = name?.Length; // length will be null if name is nullVerwenden Sie den Null-Verkettungsoperator ??, um Standardwerte bereitzustellen:
string displayName = name ?? "Unknown";Verwenden Sie string.IsNullOrWhiteSpace(), um auf null, leere oder nur Leerzeichen enthaltende Strings zu prüfen:
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("Name is null, empty, or whitespace");
}Operatoren für komplexe Szenarien verketten:
int length = (name ?? "").Length; // length will be 0 if name is nullProbier 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
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety