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

Operador ternario de C#

C# incluye un operador de decisión ? :,conocido como operador de condición o operador ternario. Es equivalente a if-abreviatura de la condición else.

Sintaxis:

condition ? statement 1 : statement 2

El operador ternario comienza con una condición booleana. Si el valor de condition es true, ejecutará la statement después de ? 1 La declaración, de lo contrario, ejecutará la segunda declaración después de :.

El siguiente ejemplo muestra el operador ternario.

int x = 20, y = 10;
var result = x > y ? "x es mayor que y" : "x es menor que y";
Console.WriteLine(result);
Salida:
x es mayor que y

La condición de expresión x > y devuelve true, por lo que se ejecutará la primera declaración después de ?.

La declaración ejecuta la segunda declaración.

int x = 10, y = 100;
var result = x > y ? "x es mayor que y" : "x es menor que y";
Console.WriteLine(result);
Salida:
x es menor que y

Por lo tanto, el operador ternario es una abreviatura de la declaración if else. El ejemplo anterior se puede rewritten con una condición if else, como se muestra a continuación.

int x = 10, y = 100;
if (x > y){
    Console.WriteLine("x es mayor que y");
}else{
    Console.WriteLine("x es menor que y");
}
Salida:
x es mayor que y

Operador ternario anidado

El operador ternario anidado se implementa mediante la condición de expresión como la segunda declaración.

int x = 10, y = 100;
string result = x > y ? "x大于y" : 
                    x < y ? "x es menor que y" : 
                        x == y ? "x igual a y" : "sin resultados";
Console.WriteLine(result);

El operador ternario es derecho asociativo. El resultado de la expresión a ? b : c ? d : e es a ? b : (c ? d : e), no (a ? b : c) ? d : e.

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