Partager via


?:, opérateur (Référence C#)

Mise à jour : novembre 2007

L'opérateur conditionnel (?:) retourne l'une de deux valeurs selon la valeur d'une expression booléenne. L'opérateur conditionnel prend la forme

condition ? first_expression : second_expression;

Notes

Si la condition est true, la première expression est évaluée et devient le résultat ; si false, la deuxième expression est évaluée et devient le résultat. Une seule des deux expressions peut être évaluée.

Les calculs qui pourraient nécessiter une construction if-else peuvent être exprimés de manière plus concise et élégante à l'aide de l'opérateur conditionnel. Par exemple, pour éviter une division par zéro dans le calcul de la fonction sin, vous pouvez écrire

if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0;

ou, en utilisant l'opérateur conditionnel,

s = x != 0.0 ? Math.Sin(x)/x : 1.0;

L'opérateur conditionnel est associatif à droite. Ainsi, une expression de la forme

a ? b : c ? d : e

est évaluée comme

a ? b : (c ? d : e)

et non

(a ? b : c) ? d : e

L'opérateur conditionnel ne peut pas être surchargé.

Exemple

class ConditionalOp
{
    static double sinc(double x)
    {
        return x != 0.0 ? Math.Sin(x) / x : 1.0;
    }

    static void Main()
    {
        Console.WriteLine(sinc(0.2));
        Console.WriteLine(sinc(0.1));
        Console.WriteLine(sinc(0.0));
    }
}
/*
Output:
0.993346653975306
0.998334166468282
1
*/

Voir aussi

Concepts

Guide de programmation C#

Référence

Opérateurs C#

if-else (Référence C#)

Autres ressources

Référence C#