English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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);
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);
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"); }
x maior que y
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);