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
Condicionsiempre debe de retornar un valor de tipoboolean. - Si la
Condicionestrue,Expresion1se evalúa y se convierte en el resultado. Caso contrarioExpresion2se evalúa y se convierte en el resultado. - El tipo de dato de
Expresion1debe 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_2es 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