Null Reference Basics
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 asignar 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 toma un parámetro string llamado name. El método debe:
- Verificar si el nombre es null
- Si el nombre es null, imprimir: "Name is null"
- Si el nombre no es null, imprimir: "Name length is X" (donde X es la longitud del nombre)
Hoja de referencia
Una referencia nula representa la ausencia de un objeto en C#.
Declare una variable de tipo referencia con null:
string name = null;Usar referencias nulas sin verificar causa errores en tiempo de ejecución:
string name = null;
// This will throw a NullReferenceException
int length = name.Length;Verificar si es null antes de usar:
string name = null;
if (name != null)
{
// Safe to use name here
int length = name.Length;
}Asignar un valor no nulo para hacerlo seguro de usar:
string name = null;
name = "John";
int length = name.Length; // length will be 4Prué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
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety