Exporter (0) Imprimer
Développer tout

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

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;

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é.

// cs_operator_conditional.cs
using System;
class MainClass
{
    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));
    }
}

 
0.993346653975306
0.998334166468282
1

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft