Principales errores de desarrolladores principiantes en C# y cómo evitarlos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: Por qué los errores son normales



El camino de todo desarrollador comienza con errores. C# (.NET) es un lenguaje potente y fuertemente tipado que perdona menos que los lenguajes dinámicos, pero a cambio ofrece fiabilidad y rendimiento. En este artículo analizaremos los 4 errores más comunes que cometen los principiantes y mostraremos cómo evitarlos. El artículo será útil tanto para quienes recién comienzan a estudiar C# como para quienes desean refrescar conocimientos.



1. Ignorar null y NullReferenceException



El error más popular en C# es NullReferenceException. Ocurre cuando intentas acceder a un miembro de un objeto que es igual a null.



Ejemplo del problema

string text = null;int length = text.Length; // ¡Error! NullReferenceException


Los principiantes a menudo olvidan verificar los valores devueltos por los métodos, o confían en que el objeto definitivamente existe.



Cómo hacerlo correctamente

  • Siempre verifica los objetos para null antes de usarlos.
  • Usa los operadores ?. (null-conditional) y ?? (null-coalescing).


string text = GetText(); // puede devolver nullint? length = text?.Length; // si text == null, length será nullint safeLength = text?.Length ?? 0; // si es null, entonces 0Console.WriteLine(safeLength);


Además, en C# 8.0+ aparecieron los nullable reference types, que se activan mediante #nullable enable. Estos te obligan a indicar explícitamente si una variable puede ser null, y advierten sobre problemas potenciales en tiempo de compilación.



2. Uso incorrecto de var y pérdida de legibilidad



La palabra clave var permite que el compilador determine el tipo de la variable por sí mismo. Es conveniente, pero los principiantes a menudo abusan de ella, lo que hace que el código sea ilegible.



Ejemplo de código malo

var data = GetData();var result = Process(data);var output = Transform(result); // ¿Qué tipos son? No está claro.


Después de un mes, tú (o tu colega) no podrán entender rápidamente qué tipo tiene data sin mirar la definición del método.



Cuándo usar var

  • Cuando el tipo es obvio por el lado derecho (por ejemplo, var list = new List<int>();)
  • Al trabajar con tipos anónimos y consultas LINQ.


// Bien: el tipo es obviovar numbers = new List<int> { 1, 2, 3 };

// Bien: tipo anónimovar person = new { Name = "John", Age = 30 };

// Mal: el tipo no está clarovar config = LoadConfiguration(); // Mejor: Configuration config = LoadConfiguration();


Regla de oro: usa var solo cuando mejore la legibilidad, no cuando la reduzca.



3. Tragar excepciones y bloques catch vacíos



Muchos principiantes, al encontrarse con excepciones, escriben un catch vacío o simplemente muestran un mensaje sin analizar el error. Esto hace que el programa sea inestable y dificulta la depuración.



Ejemplo de antipatrón

try{    int.Parse("no es un número");}catch (Exception){    // No hacemos nada — el error ha sido "tragado"}


La aplicación continuará ejecutándose, pero en un estado incorrecto. El usuario no sabrá del problema y los datos podrían dañarse.



Cómo manejar las excepciones correctamente

  • No captures Exception genéricas a menos que planees manejar todos los tipos de errores.
  • Captura solo las excepciones que puedas manejar (por ejemplo, FormatException, FileNotFoundException).
  • Usa finally para liberar recursos (archivos, conexiones).
  • Registra los errores (logging).


try{    int number = int.Parse(userInput);}catch (FormatException ex){    // Registramos y notificamos al usuario    // (el código continúa aquí en la traducción original, pero se cortó en la entrada)

Blogs

Book Recommendations