Menu
Coddy logo textTech

Patrones de comprobación de valores nulos

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

La comprobación de valores null es una parte esencial de la escritura de código C# robusto. Hay varios patrones que puedes usar para comprobar de forma segura si hay valores null.

Exploremos algunos patrones comunes para comprobar null:

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

string name = null;

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

Otro patrón común es el operador condicional null (?.), que accede de forma segura a los miembros de objetos que podrían ser null:

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

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

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 práctica de comprobar si una cadena es nula, está vacía o contiene únicamente 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 los valores nulos, las cadenas vacías y las 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 comprobación simple de nulo. 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 acepte un parámetro de tipo cadena userName. El método debe:

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

Recuerda usar patrones adecuados para comprobar valores nulos.

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

Practica por tu cuenta: Compilador de C# online