English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Opérateur ternaire C#

C# contient un opérateur de décision ? :dénommé opérateur conditionnel ou opérateur ternaire. Il est if-Abréviation de la condition else.

Syntaxe :

condition ? instruction 1 : instruction 2

L'opérateur ternaire commence par une condition booléenne. Si la valeur de condition est true, il exécute l'instruction après ?. 1 L'instruction, sinon exécute la deuxième instruction après :.

L'exemple suivant montre l'opérateur ternaire.

int x = 20, y = 10;
var result = x > y ? "x est supérieur à y" : "x est inférieur à y";
Console.WriteLine(result);
Sortie :
x est supérieur à y

L'expression conditionnelle x > y renvoie true, donc l'instruction après ? sera exécutée.

L'instruction suivante exécute la deuxième instruction.

int x = 10, y = 100;
var result = x > y ? "x est supérieur à y" : "x est inférieur à y";
Console.WriteLine(result);
Sortie :
x est inférieur à y

Par conséquent, l'opérateur ternaire est une abréviation de l'instruction if else. L'exemple ci-dessus peut être réécrit avec une condition if else, comme suit.

int x = 10, y = 100;
if (x > y) {
    Console.WriteLine("x est supérieur à y");
}
    Console.WriteLine("x est inférieur à y");
}
Sortie :
x est supérieur à y

Opérateur ternaire imbriqué

L'opérateur ternaire imbriqué est réalisé en utilisant l'expression conditionnelle comme deuxième instruction.

int x = 10, y = 100;
string result = x > y ? "x est supérieur à y" : ; 
                    x < y ? "x est plus petit que y" : 
                        x == y ? "x égale à y" : "Pas de résultat";
Console.WriteLine(result);

L'opérateur ternaire est associatif à droite. Le résultat de l'expression a ? b : c ? d : e est a ? b : (c ? d : e), pas (a ? b : c) ? d : e.

var x = 2, y = 10;
var result = x * 3 > y ? x : y > z ? y : z;
Console.WriteLine(result);