0Pricing
C# Academy · Leçon

Opérateurs de coalescence des valeurs nulles

Utilisez ?? et ??= pour fournir des solutions de repli.

Opérateurs de coalescence des valeurs nulles est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 4 leçons au total.

L’opérateur ??

L’opérateur de coalescence nulle ?? renvoie son opérande gauche s’il n’est pas nul, et son opérande droit dans le cas contraire. Il constitue une valeur de remplacement concise.

using System;

class Program {
    static void Main() {
        int? maybe = null;
        int value = maybe ?? -1;
        Console.WriteLine(value);
    }
}

?? choisit la première valeur non nulle

Si le côté gauche contient une valeur, celle-ci est retenue et le côté droit est ignoré.

using System;

class Program {
    static void Main() {
        int? a = 7;
        Console.WriteLine(a ?? 0);
    }
}

?? avec les types référence

?? fonctionne également avec les types référence comme string, en fournissant un texte par défaut lorsque la valeur est nulle.

using System;

class Program {
    static void Main() {
        string name = null;
        Console.WriteLine(name ?? "Guest");
    }
}

Enchaîner les opérateurs ??

Vous pouvez enchaîner plusieurs valeurs de remplacement ; la première valeur non nulle est utilisée.

using System;

class Program {
    static void Main() {
        string a = null, c = "third";
        string b = null;
        Console.WriteLine(a ?? b ?? c ?? "last");
    }
}

?? renvoie le type sous-jacent

Lorsque le côté gauche est int? et le côté droit est int, le résultat est un int ordinaire, puisque null ne peut plus se produire.

using System;

class Program {
    static void Main() {
        int? maybe = null;
        int sure = maybe ?? 0;
        Console.WriteLine(sure + 5);
    }
}

L’opérateur ??=

L’affectation de fusion de null ??= affecte le côté droit uniquement si le côté gauche est actuellement null.

using System;

class Program {
    static void Main() {
        int? count = null;
        count ??= 10;
        Console.WriteLine(count);
    }
}

??= conserve les valeurs existantes

Si la variable contient déjà une valeur, ??= ne fait rien.

using System;

class Program {
    static void Main() {
        string config = "custom";
        config ??= "default";
        Console.WriteLine(config);
    }
}

Initialisation différée avec ??=

??= est idéal pour définir une valeur la première fois et la conserver ensuite.

using System;

class Program {
    static string cache = null;
    static string GetData() {
        cache ??= "loaded";
        return cache;
    }
    static void Main() {
        Console.WriteLine(GetData());
        Console.WriteLine(GetData());
    }
}

?? et GetValueOrDefault

Les deux fournissent des valeurs de remplacement, mais ?? est plus flexible : il fonctionne avec les types référence et permet d’utiliser n’importe quelle expression comme valeur de remplacement.

using System;

class Program {
    static void Main() {
        int? n = null;
        Console.WriteLine(n ?? 5);
        Console.WriteLine(n.GetValueOrDefault(5));
    }
}

?? dans les arguments de méthode

Utilisez ?? directement pour fournir une valeur par défaut à l’endroit précis où une valeur est nécessaire.

using System;

class Program {
    static void Greet(string name) {
        Console.WriteLine("Hello, " + name);
    }
    static void Main() {
        string input = null;
        Greet(input ?? "friend");
    }
}

Évaluation en court-circuit

Le côté droit de ?? n’est évalué que lorsque le côté gauche est null, de façon similaire à une évaluation en court-circuit.

using System;

class Program {
    static int Compute() {
        Console.WriteLine("Computed");
        return 42;
    }
    static void Main() {
        int? known = 1;
        int result = known ?? Compute();
        Console.WriteLine(result);
    }
}

Vérification rapide

Testez votre compréhension des opérateurs de fusion de null.

Récapitulatif

L’opérateur ?? renvoie la valeur de gauche si elle n’est pas null, sinon celle de droite, et il peut être chaîné. Le type du résultat perd sa nullabilité lorsqu’une valeur de remplacement non nulle est fournie.

??= affecte une valeur uniquement lorsque la cible est null, ce qui le rend idéal pour les valeurs par défaut et l’initialisation différée. Les deux opérateurs n’évaluent le côté droit que lorsque cela est nécessaire.

Questions Fréquemment Posées

La leçon « Opérateurs de coalescence des valeurs nulles » est-elle gratuite ?

Oui — le texte complet de « Opérateurs de coalescence des valeurs nulles » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Opérateurs de coalescence des valeurs nulles » ?

Utilisez ?? et ??= pour fournir des solutions de repli. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C# Academy ?

Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Opérateurs de coalescence des valeurs nulles » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?

Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Présentation des types de valeurs nullables
  2. Propriétés HasValue et Value
  3. Opérateurs de coalescence des valeurs nulles
  4. Valeurs nullables dans les calculs
← Retour à C# Academy