Conceptos básicos de referencias nulas
Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 31 de 66.
En C#, una referencia nula representa la ausencia de un objeto. Comprender cómo trabajar con valores nulos es esencial para escribir código robusto.
Declara una variable de tipo referencia (como string) sin asignarle un valor:
string name = null;La variable 'name' ahora contiene una referencia nula, lo que significa que no apunta a ningún objeto en memoria.
Intentar usar una referencia nula sin verificar puede causar errores en tiempo de ejecución:
string name = null;
// This will throw a NullReferenceException
int length = name.Length;Puedes verificar si una referencia es null antes de usarla:
string name = null;
if (name != null)
{
// Es seguro usar name aquí
int length = name.Length;
}También puedes asignar un valor no nulo a la variable:
string name = null;
name = "John";
// Now it's safe to use name
int length = name.Length; // length will be 4Desafío
FácilCrea un método llamado ProcessName que acepte un parámetro de cadena llamado name. El método debe:
- Comprobar si el nombre es nulo
- Si el nombre es nulo, imprimir: "Name is null"
- Si el nombre no es nulo, imprimir: "Name length is X" (donde X es la longitud del nombre)
Pruébalo tú mismo
using System;
class Program
{
public static void ProcessName(string name)
{
// Escribe tu código aquí
}
static void Main(string[] args)
{
string input = Console.ReadLine();
// Convierte la cadena "null" a null real
string name = input.ToLower() == "null" ? null : input;
ProcessName(name);
}
}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
1Arrays multidimensionales
Conceptos básicos de arrays 2DDeclaración e inicialización de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DArrays irregularesOperaciones comunes con matricesRepaso: arrays multidimensionales4Técnicas de control de flujo
Retornos anticipadosCláusulas de guardaSentencias de salto (goto)Break y ContinueAplanar condicionales anidados7Operadores lógicos avanzados
Evaluación de cortocircuitoOperadores lógicos condicionalesPrecedencia de operadoresRepaso: operadores avanzados2Toma de decisiones avanzada
Múltiples condicionesLógica booleana complejaComparación entre If y SwitchSentencias Switch anidadasRepaso: decisiones avanzadas5Manejo de excepciones
Fundamentos de Try-CatchTipos de excepcionesMúltiples bloques CatchTrabajo con archivosBloque FinallyUso de Using frente a Try-FinallyExcepciones personalizadasRepaso: manejo de errores3Mejoras de bucles
Rendimiento de buclesIteración de estructuras complejasCada tipo de bucleRefactorización de buclesRepaso: bucles optimizados6Manejo de valores nulos
Conceptos básicos de referencias nulasTipos de valor anulablesPatrones de comprobación de valores nulosProgramación defensivaRepaso: seguridad frente a valores nulosPractica por tu cuenta: Compilador de C# online