csharp-condicional-ternario

Qué es y cómo usar el operador ternario en C#

El operador ternario (también conocido como operador condicional) es una herramienta de C# que nos permite realizar evaluaciones condicionales de manera concisa en una sola línea de código.

Es una forma abreviada de expresar una instrucción if-else en situaciones donde se desea asignar un valor basado en una condición específica.

El operador ternario, toma tres operandos. Su sintaxis básica es la siguiente:

condicion ? expresion_verdadera : expresion_falsa
  • Condición: Una expresión booleana que se evalúa como verdadera o falsa.
  • Expresión Verdadera: El valor que se asigna si la condición es verdadera.
  • Expresión Falsa: El valor que se asigna si la condición es falsa.

El operador ternario devuelve el valor de la expresión verdadera si la condición es verdadera, de lo contrario, devuelve el valor de la expresión falsa.

Ejemplo Básico

Supongamos que queremos determinar si un número es par o impar y almacenar el resultado en una variable llamada “resultado”. Podríamos escribir el código de la siguiente manera:

int numero = 10;
string resultado;

if (numero % 2 == 0)
{
    resultado = "par";
}
else
{
    resultado = "impar";
}

Sin embargo, utilizando un condicional ternario, podemos simplificar este código en forma más compacta.

int numero = 10;
string resultado = (numero % 2 == 0) ? "par" : "impar";

Como se puede observar, el condicional ternario nos permite asignar directamente el resultado de la evaluación a la variable “resultado” de manera más concisa y legible.

Anidamiento

El operador ternario se puede anidar para realizar evaluaciones más complejas. Por ejemplo,

int numero = 10;

string resultado = (numero > 0) ? "positivo" : 
                   (numero < 0) ? "negativo" : 
                   "cero";

Console.WriteLine($"El número es {resultado}");

En este ejemplo, se asigna “positivo” si el número es mayor que 0, “negativo” si es menor que 0 y “cero” si es igual a 0.

Muy importante, usar solo el anidamiento cuando quede muy claro el propósito y el funcionamiento. Si veis que perjudica la legibilidad, emplear otra opción.

Ejemplos prácticos

Comparar dos números y determinar el mayor

Supongamos que tenemos dos variables, “a” y “b”, que representan dos números enteros, y queremos determinar cuál de los dos es mayor. Podríamos escribir el código de la siguiente manera:

int a = 5;
int b = 8;
int mayor;

if (a > b)
{
    mayor = a;
}
else
{
    mayor = b;
}

Con el condicional ternario, podemos reducir este código a una sola línea:

int a = 5;
int b = 8;
int mayor = (a > b) ? a : b;

Nuevamente, el condicional ternario nos permite realizar la evaluación y asignación en una sola línea, simplificando nuestro código y haciéndolo más fácil de leer.

Asignación de valores

El operador ternario es útil cuando se necesita asignar un valor basado en una condición simple en una sola línea de código.

int edad = 20;
string categoria = (edad >= 18) ? "adulto" : "menor de edad";
Console.WriteLine($"La persona es {categoria}");

Este ejemplo asigna la cadena “adulto” a la variable categoria si la edad es mayor o igual a 18; de lo contrario, asigna la cadena “menor de edad”.

Valor de retorno en métodos

El operador ternario también se puede utilizar para determinar el valor de retorno de un método basado en una condición.

public string ObtenerSaludo(bool esFormal)
{
    return esFormal ? "Buenos días, señor(a)" : "Hola";
}

Este método ObtenerSaludo devuelve “Buenos días, señor(a)” si el parámetro esFormal es verdadero; de lo contrario, devuelve “Hola”.