Enumeraciones y sobreescritura de métodos en C#

Clase 12 de 32Fundamentos de C# con NET Core 2.1

Resumen

Usar tipos seguros y salidas legibles marca la diferencia al modelar entidades en C#. Aquí verás cómo una enumeración elimina errores comunes al definir el tipo de escuela y cómo un override de ToString entrega una impresión limpia y útil del objeto. Todo con ejemplos claros y buenas prácticas que evitan fallos por mayúsculas o cadenas mal escritas.

¿Por qué usar una enumeración en C# evita errores de tipo?

Las cadenas permiten valores ambiguos. En cambio, una enumeración limita las opciones a un conjunto controlado y previene errores en tiempo de compilación. Así, el tipo de escuela no acepta variaciones como “Primaria”, “primarias” o “PRIMARIA”. Solo valores válidos.

¿Qué es una enumeración enum y cómo se declara?

// En el mismo namespace de Entidades public enum TiposEscuela { Primaria, Secundaria, Preescolar }
  • Clave: declarar como public para usarla fuera del archivo donde se define.
  • Beneficio: autocompletado confiable y sin cadenas ambiguas.

¿Qué valores numéricos tiene una enum en C#?

public enum TiposEscuela { Primaria = 0, Secundaria = 1, Preescolar = 3 // no es obligatorio que sea consecutivo. }
  • Si omites números, C# asigna 0, 1, 2 en orden.
  • Puedes asignar cualquier entero. No requiere secuencia.

¿Cómo asignar y validar el tipo con TiposEscuela?

Cambia la propiedad de string a la enum creada. Obtendrás tipado fuerte y asignaciones válidas guiadas por el editor. Si la enum no es pública, no aparecerá para usarla.

¿Cómo luce la propiedad en la clase escuela?

public class Escuela { public string Nombre { get; set; } public string Pais { get; set; } public string Ciudad { get; set; } public TiposEscuela TipoEscuela { get; set; } } // Asignación segura escuela.TipoEscuela = TiposEscuela.Primaria;
  • Solo permite opciones de TiposEscuela tras ..
  • Ayuda el autocompletado con control + barra espaciadora.

¿Qué errores previene en tiempo de compilación?

  • No acepta “primarias”. Es un valor inexistente.
  • No convierte cadenas a la enum: “no se puede convertir de cadena de texto a tipos de escuela”.
  • Evita fallos por mayúsculas/minúsculas y variantes tipográficas.

¿Cómo personalizar la impresión con override ToString?

Imprimir el objeto directamente muestra el nombre completo del tipo (por ejemplo, CoreEscuela.Entidades.Escuela). Con override de ToString, defines una salida legible con los datos clave: nombre, tipo, país y ciudad.

¿Qué imprime por defecto un objeto en C#?

  • El nombre calificado del tipo dentro del namespace.
  • Porque en C# todo es un object que hereda de System.Object, cuyo ToString() por defecto devuelve el nombre del tipo.

¿Cómo implementar override ToString con interpolación de cadenas?

public override string ToString() { return $"Nombre: {Nombre}\n" + $"Tipo: {TipoEscuela.ToString().ToLower()}\n" + $"País: {Pais}\n" + $"Ciudad: {Ciudad}"; }
  • Usa $ para interpolación y \n para salto de línea.
  • Variables entre llaves se insertan en la cadena.
  • Recuerda finalizar instrucciones con ; y devolver un string.

¿Qué salida obtenemos tras formatear?

Nombre: Copia Platzi Academy Tipo: primaria País: Colombia Ciudad: Bogotá
  • Más claro y práctico para consola y logs.
  • Se ejecuta con dotnet run y verás la salida formateada.

¿Te gustaría ver más ejemplos con validaciones o formateos alternativos? Comparte tus dudas y comenta qué caso necesitas cubrir.

      Enumeraciones y sobreescritura de métodos en C#