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

Operador Ternário do C#

O C# contém um operador de decisão ? :ou operador ternário. É uma abreviação do if-abreviação da condição else.

Sintaxe:

condition ? statement 1 : statement 2

O operador ternário começa com uma condição booleana. Se o valor de condition for true, ele executará a statement após ? 1 A instrução, caso contrário, executará a segunda declaração após :.

O exemplo a seguir demonstra o operador ternário.

int x = 20, y = 10;
var result = x > y ? "x maior que y" : "x menor que y";
Console.WriteLine(result);
Saída:
x maior que y

A expressão condicional x > y retorna true, portanto, a primeira declaração após o ? será executada.

A instrução executa a segunda declaração.

int x = 10, y = 100;
var result = x > y ? "x maior que y" : "x menor que y";
Console.WriteLine(result);
Saída:
x menor que y

Portanto, o operador ternário é uma abreviação da instrução if else. O exemplo acima pode ser reescrito usando a condição if else, conforme mostrado a seguir.

int x = 10, y = 100;
if (x > y){
    Console.WriteLine("x maior que y");
}else{
    Console.WriteLine("x menor que y");
}
Saída:
x maior que y

Operador ternário aninhado

O operador ternário aninhado é implementado atribuindo a expressão condicional como a segunda declaração.

int x = 10, y = 100;
string result = x > y ? "x maior que y" : ; 
                    x < y ? "x menor que y" : 
                        x == y ? "x igual a y" : "Sem resultado";
Console.WriteLine(result);

O operador ternário é direito associativo. O resultado da expressão a ? b : c ? d : e é a ? b : (c ? d : e), não (a ? b : c) ? d : e.

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