Operadores y Expresiones
C# tiene los operadores estándar que conoces de otros lenguajes (suma, resta, comparación, lógicos), pero añade operadores específicos que hacen el código más seguro y conciso. El operador null-coalescing (??) retorna el operando derecho cuando el izquierdo es null: nombre ?? "Anónimo" es mucho más limpio que el ternario nombre != null ? nombre : "Anónimo".
El operador ??= asigna solo si la variable es null: nombre ??= "Default" equivale a if (nombre == null) nombre = "Default".
El operador null-conditional (?.) es el más valioso para evitar NullReferenceException: persona?.Nombre llama Nombre solo si persona no es null; si es null, devuelve null en lugar de lanzar excepción. Puedes encadenar: persona?.Direccion?.Ciudad?.ToUpper() devuelve null en cualquier punto de la cadena donde algo sea null. Combinados, ?? y ?. permiten escribir código defensivo muy legible: var ciudad = persona?.Direccion?.Ciudad ?? "Sin ciudad".
// Aritméticos
int a = 10, b = 3;
Console.WriteLine(a + b); // 13
Console.WriteLine(a - b); // 7
Console.WriteLine(a * b); // 30
Console.WriteLine(a / b); // 3 (división entera)
Console.WriteLine(a % b); // 1 (módulo/resto)
Console.WriteLine(10.0 / 3); // 3.333... (con double)
// Comparación
bool igual = (a == b); // false
bool mayor = (a > b); // true
bool diferente = (a != b); // true
// Lógicos
bool y = true && false; // false (AND)
bool o = true || false; // true (OR)
bool no = !true; // false (NOT)
// Incremento/decremento
int x = 5;
x++; // x = 6
x--; // x = 5
int y = ++x; // y = 6, x = 6 (pre-incremento)
int z = x++; // z = 6, x = 7 (post-incremento)
// Operadores de C# (únicos)
string? nombre = null;
string resultado = nombre ?? "Anónimo"; // Null-coalescing
nombre ??= "Default"; // Asigna si null
int? longitud = nombre?.Length; // Null-conditional
Practica esta lección
Resuelve los ejercicios del curso de C# en la app, gratis y con corrección automática.
Empezar a practicar