Avatar ·

¿Qué es null/nil en C# y cómo trabajar con él?

¡Hola a todos! Empecé a estudiar C# y me encontré con el concepto de null. En otros lenguajes he visto nil o None, pero en C# parece ser lo mismo. Indiquen, ¿qué significa exactamente null en el contexto de los tipos por referencia y cómo trabajar correctamente con él?

Intenté escribir código simple, pero obtengo NullReferenceException. Aquí un ejemplo:

public class Person { public string Name { get; set; } }

Person person = null;
Console.WriteLine(person.Name); // Error: Object reference not set to an instance of an object.

Esperaba que person.Name devolviera una cadena vacía o null sin excepción. ¿Cómo evitar estos errores? Intenté verificar con if (person != null), pero eso satura el código. He oído sobre ?. (null-conditional operator) y ?? (null-coalescing operator) — ¿cómo aplicarlos correctamente? También me interesa saber en qué se diferencia null de default.