El operador condicional ?: es una forma abreviada de escribir una sentencia if-else
simple. La sintaxis es la siguiente:
Condicion ? Expresion1 : Expresion2;
Que equivaldría a:
if (Condicion) Expresion1; else Expresion2;
Para implementarlo, debemos de tener en cuenta lo siguiente:
- La
Condicion
siempre debe de retornar un valor de tipoboolean
. - Si la
Condicion
estrue
,Expresion1
se evalúa y se convierte en el resultado. Caso contrarioExpresion2
se evalúa y se convierte en el resultado. - El tipo de dato de
Expresion1
debe ser el mismo que el deExpresion2
, caso contrario se debe realizar primero una conversión implícita de un tipo al otro. - Los operadores condicionales anidados siempre son evaluados desde la derecha. La expresión
Condicion1 ? Expresion1 : Condicion2 ? Expresion2_1 : Expresion2_2
es equivalente aCondicion1 ? Expresion1 : (Condicion2 ? Expresion2_1 : Expresion2_2)
. - El operador condicional debe ser usado en sentencias de asignamiento, llamadas, incrementos, decrementos y expresiones de nuevos objetos que pueden ser usados como una sentencia.
Ejemplo
bool var = true; string resultado = var == true ? "Verdadero" : "Falso"; Console.WriteLine(resultado);
Resultado:
Verdadero