Patterns de vérification de nullité
Fait partie de la section Logique & Flux du Journey C# de Coddy. Leçon 33 sur 66.
La vérification de la valeur null est une partie essentielle de l’écriture d’un code C# robuste. Il existe plusieurs modèles que vous pouvez utiliser pour vérifier les valeurs null en toute sécurité.
Explorons quelques schémas courants de vérification de nullité :
Tout d’abord, la vérification de base si la valeur est nulle :
string name = null;
if (name == null)
{
Console.WriteLine("Name is null");
}
Un autre modèle courant est l’opérateur conditionnel null (?.), qui accède en toute sécurité aux membres d’objets potentiellement null :
string name = null;
int? length = name?.Length; // length sera null
L’opérateur de coalescence des valeurs nulles (??) fournit une valeur par défaut lorsqu’une expression est null :
string name = null;
string displayName = name ?? "Unknown"; // displayName sera "Unknown"
Vous pouvez également enchaîner ces modèles pour des scénarios plus complexes :
string name = null;
int length = (name ?? "").Length; // length sera 0
La méthode string.IsNullOrWhiteSpace() est un moyen pratique de vérifier si une chaîne est null, vide ou contient uniquement des caractères d’espacement : le tout en un seul appel :
string name = null;
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("Name is null, empty, or whitespace");
}
C'est particulièrement utile lorsque vous devez traiter les valeurs nulles, les chaînes vides et les chaînes contenant uniquement des espaces de la même manière. Par exemple :
string name1 = null;
string name2 = "";
string name3 = " ";
// Les trois afficheront le message
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");
Notez que string.IsNullOrWhiteSpace() est différent d’une simple vérification de nullité. Cette méthode détecte également les chaînes vides et les chaînes qui contiennent uniquement des espaces, des tabulations ou d’autres caractères d’espacement.
Défi
FacileCréez une méthode appelée processUserName qui accepte un paramètre chaîne userName. La méthode doit :
- Si
userNameest null, retourner "No user provided" - Si
userNameest vide ou ne contient que des espaces blancs, retourner "Invalid username" - Sinon, retourner "Welcome, [userName]!" où [userName] est le nom d’utilisateur réel
N’oubliez pas d’utiliser des modèles appropriés de vérification de la valeur null.
Essayez vous-même
using System;
class ProcessUserName
{
public static string processUserName(string userName)
{
// Écrivez votre code ici
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DDéclaration et initialisation en 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DTableaux irréguliersOpérations matricielles courantesRécapitulatif - Multidimensionnel4Techniques de contrôle de flux
Retours anticipésClauses de gardeInstructions de saut (goto)Break et ContinueAplatir les conditionnelles imbriquées2Prise de décision avancée
Conditions multiplesLogique booléenne complexeComparaison If vs SwitchInstructions Switch imbriquéesRécapitulatif - Décisions avancées5Gestion des exceptions
Bases du Try-CatchTypes d'exceptionsBlocs Catch multiplesManipulation de fichiersLe bloc FinallyUsing vs Try-FinallyExceptions personnaliséesRécapitulatif - Gestion des erreurs3Améliorations des boucles
Performance des bouclesItération de structures complexesChaque type de boucleRefactorisation des bouclesRécapitulatif - Boucles optimisées6Gestion des valeurs nulles
Les bases des références nullesTypes valeur nullablesPatterns de vérification de nullitéProgrammation défensiveRécapitulatif - Null SafetyEntraînez-vous par vous-même : Compilateur C# en ligne