Menu
Coddy logo textTech

Null Checking Patterns

Parte de la sección Lógica y Flujo del Journey de C# de Coddy — lección 33 de 66.

La comprobación de nulos es una parte esencial para escribir código C# robusto. Existen varios patrones que puedes usar para comprobar valores nulos de forma segura.

Exploremos algunos patrones comunes de verificación de nulos:

Primero, la comprobación básica if-null:

string name = null;

if (name == null)
{
    Console.WriteLine("Name is null");
}

Otro patrón común es el operador condicional nulo (?.), que accede de forma segura a los miembros de objetos potencialmente nulos:

string name = null;
int? length = name?.Length;  // length será null

El operador de fusión de nulos (??) proporciona un valor predeterminado cuando una expresión es nula:

string name = null;
string displayName = name ?? "Unknown";  // displayName será "Unknown"

También puedes encadenar estos patrones para escenarios más complejos:

string name = null;
int length = (name ?? "").Length;  // length será 0

El método string.IsNullOrWhiteSpace() es una forma conveniente de comprobar si una cadena es nula, está vacía o contiene solo caracteres de espacio en blanco, todo en una sola llamada:

string name = null;

if (string.IsNullOrWhiteSpace(name))
{
    Console.WriteLine("Name is null, empty, or whitespace");
}

Esto es especialmente útil cuando necesitas tratar null, cadenas vacías y cadenas que solo contienen espacios en blanco de la misma manera. Por ejemplo:

string name1 = null;
string name2 = "";
string name3 = "   ";

// Los tres imprimirán el mensaje
if (string.IsNullOrWhiteSpace(name1)) Console.WriteLine("name1 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name2)) Console.WriteLine("name2 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name3)) Console.WriteLine("name3 is null/empty/whitespace");

Ten en cuenta que string.IsNullOrWhiteSpace() es diferente de una simple comprobación de nulos — también detecta cadenas vacías y cadenas que solo contienen espacios, tabulaciones u otros caracteres de espacio en blanco.

challenge icon

Desafío

Fácil

Crea un método llamado processUserName que reciba un parámetro de tipo string userName. El método debe:

  1. Si userName es null, devuelve "No user provided"
  2. Si userName está vacío o solo contiene espacios en blanco, devuelve "Invalid username"
  3. De lo contrario, devuelve "Welcome, [userName]!" donde [userName] es el nombre de usuario real

Recuerda utilizar patrones de comprobación de nulos adecuados.

Pruébalo tú mismo

using System;

class ProcessUserName
{
    public static string processUserName(string userName)
    {
        // Escribe tu código aquí
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo