?? Opérateur (référence C#)

L'opérateur ?? est appelé l'l'opérateur de fusion Null. Il retourne l'opérande de partie gauche si ce dernier n'est pas Null ; dans le cas contraire, il retourne l'opérande de partie droite.

Notes

Un type Nullable peut représenter une valeur à partir du domaine du type, ou la valeur peut être non définie (auquel cas la valeur est Null). Utilisez la simplicité de syntaxe de l'opérateur ?? pour retourner une valeur appropriée (l'opérande de partie droite) si l'opérande de partie gauche a un type Nullable dont la valeur est Null. Si vous essayez d'assigner un type valeur Nullable à un type valeur non Nullable sans utiliser l'opérateur ??, vous générez une erreur au moment de la compilation. Si vous utilisez un cast et si le type valeur Nullable est actuellement non défini, une exception InvalidOperationException est levée.

Pour plus d'informations, consultez Types Nullable (Guide de programmation C#).

Le résultat d'un opérateur ?? n'est pas interprété comme une constante même si ses deux arguments sont des constantes.

Exemple

class NullCoalesce
{
    static int? GetNullableInt()
    {
        return null;
    }

    static string GetStringValue()
    {
        return null;
    }

    static void Main()
    {
        int? x = null;

        // Set y to the value of x if x is NOT null; otherwise, 
        // if x = null, set y to -1. 
        int y = x ?? -1;

        // Assign i to return value of the method if the method's result 
        // is NOT null; otherwise, if the result is null, set i to the 
        // default value of int. 
        int i = GetNullableInt() ?? default(int);

        string s = GetStringValue();
        // Display the value of s if s is NOT null; otherwise,  
        // display the string "Unspecified".
        Console.WriteLine(s ?? "Unspecified");
    }
}

Voir aussi

Référence

Opérateurs C#

Types Nullable (Guide de programmation C#)

Concepts

Guide de programmation C#

Autres ressources

Référence C#

Que signifie réellement « Lifted » ?